我正在尝试更新React上下文,看到了这个答案。
const LanguageSwitcher = () => {
const { language, setLanguage } = useContext(LanguageContext);
return (
<button onClick={() => setLanguage("jp")}>
Switch Language (Current: {language})
</button>
);
};
字符串
对我来说似乎是明智的,除了我得到“setLanguage不是一个函数”。这个错误实际上似乎是合理的,因为setLanguage似乎被声明为常量。
这些const { x,y } = z的声明是如何工作的?我是否声明了两个常量?如果是这样的话,为什么我读到的那么多例子似乎允许我把x当作变量,把y当作函数?为什么我得到这个错误?
抱歉,新手。感谢你的帮助。
编辑:上下文代码是:
const LanguageContext = React.createContext({
language: "en",
setLanguage: () => {}
});
型
2条答案
按热度按时间avwztpqn1#
我的问题是我没有使用上下文提供程序组件。
我把我的放在app.js中,或者你可以这样做:
字符串
vmdwslir2#
首先,不要忘记使用上下文提供程序 Package 您的应用程序。或者,如果您有多个上下文,则需要将它们嵌套在层次结构上。例如,我有两个不同的上下文,UserContext和MessageContext。我需要一些函数和变量,以便在UserContext的MessageContext中使用。所以我用UserContextProvider将App组件 Package 在index.js中。我用MessageContextProvider在App.js中 Package 了路由。因此UserContext位于顶部,我可以获取它的数据,以便在其他所有组件和上下文中使用。