React useContext 返回未定义
2021-02-24
109
我刚刚开始使用 react useContext,遇到了一个问题,我找不到解决方案。当在另一个文件中调用创建的上下文时,它返回未定义。我试图研究多个答案 像这样 和其他答案,但找不到一个可以修复错误的答案。
我试图在这里创建 CartStatusContext 并设置一些初始状态
import React, { useState } from "react";
const CartStatusContext = React.createContext();
function CartStatusContextProvider({ children }) {
const cartDict = {
'in_session': "false",
'battery-level': '8' // level is 1 to 10
}
const [cartstatus, setcartstatus] = useState(cartDict);
return (
<CartStatusContext.Provider value={{ cartstatus, setcartstatus }}>
{children}
</CartStatusContext.Provider>
);
}
export default CartStatusContextProvider
export {CartStatusContext}
然后我尝试导入并调用此文件中的上下文,但它导致应用程序崩溃,我能够通过 console.log 打印输出确认 CartStatusContext 显示为未定义。
我的 index.jsx
import CartStatusContextProvider , { CartStatusContext } from "../components/cartstatuscontext"
// Electron related imports
const electron = window.require('electron');
const { ipcRenderer } = electron;
const loadBalancer = window.require('electron-load-balancer');
function MainPage(){
const [cartstatus, setcartstatus] = useContext(CartStatusContext);
}
我做错了什么,我该如何修复未定义错误并获取 CartStatusContext 值?
2个回答
这个
function MainPage(){
const [cartstatus, setcartstatus] = useContext(CartStatusContext);
}
应该改为
function MainPage(){
const { cartstatus, setcartstatus } = useContext(CartStatusContext);
}
因为这就是它作为值传递给上下文的方式:
<CartStatusContext.Provider value={{ cartstatus, setcartstatus }}>
Anthony Garcia-Labiad
2021-02-24
您正在将一个对象存储在 CarStatsContext 中,请尝试将其存储在一个数组中,代码应该可以正常工作
Jad Al-Hamwi
2021-02-24