我如何在React中的嵌套上下文中更新状态

时间:2020-06-11 18:35:40

标签: reactjs react-native

我在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)
...

我该如何确认。刷新应用程序后,我只会得到状态更新。

0 个答案:

没有答案