【发布时间】:2020-11-24 03:42:59
【问题描述】:
我正在尝试在 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();
有人知道为什么会发生这种情况,我该如何解决它已经尝试了几个小时?
【问题讨论】:
-
你是否用你的提供者包装了你的 App.js ?此外,在您使用它的组件中,您应该传递上下文
import { PurchasesContextProvider } from '/the/path/to/your/file' const { pruchases, setPurchases } = React.useContext(PurchasesContextProvider) -
没关系我只是这样做解决了
const PurchasesContext = createContext([[], () => {}]); -
好吧,伙计:)
-
此错误可能是由于错误地将值传递给提供程序而导致的。检查大括号和括号是否正确。见:stackoverflow.com/a/67644741/1271903
标签: reactjs react-native