访问上下文状态时出现迭代器错误

艾文:

我在React Native中的以下代码中收到此错误:

Invalid attempt to destructure non-iterable instance. In order to be iterable, non-array object must have a [symbol.iterator]() method

counter-context.js

import React, {useState, createContext} from 'react'

export const CounterContext = createContext();

export const CounterContextProvider = props => {
  const [count, setCount] = useState(0)

  return (
    <CounterContext.Provider value={[count, setCount]}>
      {props.children}
    </CounterContext.Provider>
  );
}

counter-display.js

import React, { useContext } from 'react';
import { View, Text, StyleSheet } from 'react-native';
import { CounterContext, CounterContextProvider } from '../context/counter-context';

export default function Counter() {
    const [count] = useContext(CounterContext);
    
    return (
        <CounterContextProvider>
            <View style={styles.sectionContainer}>
                <Text style={styles.sectionTitle}>{count}</Text>
            </View>
        </CounterContextProvider>
    )
}

const styles = StyleSheet.create({
    sectionContainer: {
        flex: 1,
        padding: 24,
    }

App.js

<SafeAreaView>
        <ScrollView
          contentInsetAdjustmentBehavior="automatic"
          style={styles.scrollView}>
          <View style={styles.body}>
            <Counter/>
          </View>
        </ScrollView>
      </SafeAreaView>

是什么原因?似乎在做出反应。

帕特里克·罗伯茨(Patrick Roberts):

您的useContext(CounterContext)呼叫存在于不是的后代的组件中<CounterContextProvider><CounterContextProvider>必须的祖先<Counter>,而不是一个后代。

至于您收到的错误消息,这是由于赋值语句中的数组解构语法const [count] = useContext(CounterContext);导致对返回值的[Symbol.iterator]()方法(如果存在)进行隐式调用由于作用域中没有提供程序,并且上下文是在未传递默认值的情况下创建的,因此您实质上是在评估const [count] = undefined;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在ExchangeFilterFunction内部访问上下文

来自分类Dev

从useEffect访问上下文

来自分类Dev

从中访问上下文

来自分类Dev

如何在 Step Function Map 状态下访问上下文对象?

来自分类Dev

Xtext ScopeProvider:访问上下文对象会导致错误

来自分类Dev

LINQPad错误:由于其保护级别,无法访问上下文

来自分类Dev

如何在拦截器中访问上下文?

来自分类Java

访问上下文中Dockerfile外

来自分类Java

如何访问上下文库[MVVM]

来自分类Dev

ReactJS:从基本组件访问上下文

来自分类Dev

可以访问上下文的Jinja扩展

来自分类Dev

没有http.Request的访问上下文

来自分类Dev

Flutter:如何从 Dismissible onDismissed 访问上下文

来自分类Dev

托管服务中的访问上下文

来自分类Dev

每次全局更改时如何访问上下文状态的一部分而不渲染?

来自分类Dev

使用 firebaseRecyclerAdapter 时出现静态上下文错误

来自分类Dev

Android:调用getApplicationContext()时出现上下文错误

来自分类Dev

vue + nuxt js-如何在服务器端的插件中访问上下文?

来自分类Java

通过在异步gridview中单击图像来防止访问上下文操作菜单时重新加载活动

来自分类Dev

UIBezierPath出现“无效上下文”错误

来自分类Dev

上下文菜单的出现位置错误

来自分类Dev

上下文?.save(nil)出现错误

来自分类Dev

尝试切换上下文时出现Kubectl配置使用上下文错误

来自分类Dev

如何访问上下文消费者中的道具

来自分类Dev

React Child组件无法访问上下文API

来自分类Dev

如何在Gatsby的模板组件中访问上下文变量?

来自分类Dev

可访问上下文数据的折叠索引函子

来自分类Dev

在Autofac中的lambda注册期间访问上下文信息?

来自分类Dev

杜松子酒设置和从中间件访问上下文值

Related 相关文章

  1. 1

    在ExchangeFilterFunction内部访问上下文

  2. 2

    从useEffect访问上下文

  3. 3

    从中访问上下文

  4. 4

    如何在 Step Function Map 状态下访问上下文对象?

  5. 5

    Xtext ScopeProvider:访问上下文对象会导致错误

  6. 6

    LINQPad错误:由于其保护级别,无法访问上下文

  7. 7

    如何在拦截器中访问上下文?

  8. 8

    访问上下文中Dockerfile外

  9. 9

    如何访问上下文库[MVVM]

  10. 10

    ReactJS:从基本组件访问上下文

  11. 11

    可以访问上下文的Jinja扩展

  12. 12

    没有http.Request的访问上下文

  13. 13

    Flutter:如何从 Dismissible onDismissed 访问上下文

  14. 14

    托管服务中的访问上下文

  15. 15

    每次全局更改时如何访问上下文状态的一部分而不渲染?

  16. 16

    使用 firebaseRecyclerAdapter 时出现静态上下文错误

  17. 17

    Android:调用getApplicationContext()时出现上下文错误

  18. 18

    vue + nuxt js-如何在服务器端的插件中访问上下文?

  19. 19

    通过在异步gridview中单击图像来防止访问上下文操作菜单时重新加载活动

  20. 20

    UIBezierPath出现“无效上下文”错误

  21. 21

    上下文菜单的出现位置错误

  22. 22

    上下文?.save(nil)出现错误

  23. 23

    尝试切换上下文时出现Kubectl配置使用上下文错误

  24. 24

    如何访问上下文消费者中的道具

  25. 25

    React Child组件无法访问上下文API

  26. 26

    如何在Gatsby的模板组件中访问上下文变量?

  27. 27

    可访问上下文数据的折叠索引函子

  28. 28

    在Autofac中的lambda注册期间访问上下文信息?

  29. 29

    杜松子酒设置和从中间件访问上下文值

热门标签

归档