我正在使用上下文 API 将我的用户信息存储在状态中。首先,我尝试在 app.js 中使用 createContext 并提供我的价值,一切正常。但我收到了一个关于所需周期的警告。所以我想如果我在不同的文件中创建上下文,我不会收到警告。所以我创建了一个名为 appContext.js
的 js 文件appContext.js
import React from "react";
export const AppContext = React.createContext({});
然后我尝试在我的 app.js 文件中像这样使用它
import Home from "./Screens/Home";
import Signup from "./Screens/Form/Signup";
import Login from "./Screens/Form/Login";
import { AppContext } from "./appContext";
const Drawer = createDrawerNavigator();
function App() {
const [userInfo, setUserInfo] = useState({
userName: null,
userEmail: null,
userPhone: {
number: null,
countryCode: null,
},
userLoggedIn: false,
});
return (
<AppContext.Provider
value={{
userState: [userInfo, setUserInfo],
}}
>
{userInfo.userLoggedIn ? (
<NavigationContainer>
<Drawer.Navigator initialRouteName="Home">
<Drawer.Screen name="Home" component={Home} />
</Drawer.Navigator>
</NavigationContainer>
) : (
<NavigationContainer>
<Drawer.Navigator edgeWidth={0} initialRouteName="Sign Up">
<Drawer.Screen name="Login" component={Login} />
<Drawer.Screen name="Sign Up" component={Signup} />
</Drawer.Navigator>
</NavigationContainer>
)}
</AppContext.Provider>
);
}
但我收到此错误:undefined is not an object(evaluating 'Context._context')
答案 0 :(得分:0)
我解决了我的问题。实际上,我在 sigup.js 文件中错误地导入了上下文。