我在React Native和React Navigation V5中嵌套了多个上下文。我的问题是,当我登录用户时,我希望子上下文消耗父上下文状态。但是,当我从应该已更新的上下文中导入属性时,它将返回null。
<AuthProvider>
<AuthContext.Consumer>
{authContext => {
if(authContext.loading) return <View/>
return <ProductsProvider>
<ProductsContext.Consumer>
{productsContext => {
return (
<NavigationContainer>
<Stack.Navigator
screenOptions={{
initialRoute: "Home"
}}
>
{authContext.token ? (<>
<Stack.Screen
name="Home"
component={Products}
/></>):
( <>
<Stack.Screen
name="Login"
component={Login}
/></>)}...
然后在成功分配令牌到状态后,在我的产品提供程序中。我得到的令牌为空
export const ProductsProvider = ({children}) => {
let [ productsState, dispatch ] = React.useReducer(ProductsReducer, initialState);
let { token } = React.useContext(AuthContext);
console.log(token)
...
我该如何确认。刷新应用程序后,我只会得到状态更新。