reactjs - TypeError : Invalid attempt to destructure non-iterable instance. 为了迭代,

标签 reactjs react-native

我正在尝试在 React Native 上使用 API 上下文,但出现以下错误。

TypeError:解构不可迭代实例的无效尝试。 为了可迭代,非数组对象必须具有 Symbol.iterator 方法。

我的代码是这样的

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

const PurchasesContext = createContext();

export const PurchasesContextProvider = ({children}) => {
  const [purchases, setPurchases] = useState([]);
  return (
    <PurchasesContext.Provider value={[purchases, setPurchases]}>
      {children}
    </PurchasesContext.Provider>
  );
};

export const usePurchasesContext = () => {
  const [purchases, setPurchases] = useContext(PurchasesContext);

  return {
    purchases,
    setPurchases,
  };
};

然后我就这样用了

const {purchases, setPurchases} = usePurchasesContext();

有人知道为什么会发生这种情况吗?我现在已经尝试了几个小时,该如何解决?

最佳答案

没关系,我通过执行以下操作解决了它

const PurchasesContext = createContext([[], () => {}]);

关于reactjs - TypeError : Invalid attempt to destructure non-iterable instance. 为了迭代,,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64979948/

相关文章:

reactjs - React 中全局可访问的模态组件

javascript - 尝试在 React/Javascript 中使用 switch case 将 id 转换为字符串

javascript - React Native 仍然是解释型的还是基于编译的?

javascript - SyntaxError - node_modules/react-native/Libraries/polyfills/error-guard.js : Missing semicolon. (14:4) 在 react 原生库中运行 jest

javascript - 如何更改已点击的图片【react-router v4】

javascript - 为什么这个handleBlur函数带有事件参数,而函数内部没有使用事件参数呢?

javascript - 如何在 i18n-js 中使用 setLocale?

android - 错误 : WebView has been removed from react native

javascript - react native : Using lodash debounce

scrollview - react native : 2 scroll views with 2 sticky headers