【问题标题】:Conditional navigation is not working after reload in react native重新加载反应原生后条件导航不起作用
【发布时间】:2021-07-24 10:58:37
【问题描述】:

我已经实现了条件导航,这是 react-navigation 5 中切换导航的替代方法。

 <Stack.Navigator
      screenOptions={{
        headerTintColor: '#fff',
        headerTitleStyle: {
          fontFamily: 'SFUIDisplay-Regular.otf',
          fontWeight: 'bold',
        },
        headerStyle: {
          backgroundColor: '#3e94f0',
        },
        headerTitleAlign: 'center',
      }}
      initialRouteName="login">
      {loginState || isTokenExists ? (
        <Stack.Screen
          name="taskmanager"
          component={Main}
          options={{
            title: 'Task Manager',
            cardStyleInterpolator: CardStyleInterpolators.forHorizontalIOS,
          }}
        />
      ) : (
        <>
          <Stack.Screen
            name="login"
            component={Login}
            options={{
              title: 'Sign In',
            }}
          />
          <Stack.Screen
            name="register"
            component={Register}
            options={{
              title: 'Register',
              cardStyleInterpolator: CardStyleInterpolators.forHorizontalIOS,
            }}
          />
          <Stack.Screen
            name="forgetpassword"
            component={ForgetPassword}
            options={{
              title: 'Forgot Password',
              cardStyleInterpolator: CardStyleInterpolators.forHorizontalIOS,
            }}
          />
        </>
      )}
    </Stack.Navigator>

注销时,loginStatus 设置为 false,并且令牌被清除。我已经把uid当做token了

 //logout handler
  const logoutHandler = () => {
    console.log('AT logoutHandler', status);
    storeData('clearUID');
    dispatch(actions.loginStatus('', false));
    lowerOptionsToggle();
  };

现在的问题是注销功能工作正常,但如果我在用户登录时重新加载应用程序,它没有注销意味着条件导航不起作用。

【问题讨论】:

  • 确保loginState中的值|| isTokenExists 变化!否则它不会切换。

标签: react-native redux react-redux react-navigation


【解决方案1】:

尝试使用 AsyncStorage 存储/删除登录状态和令牌,并相应地应用条件导航。也可以尝试为 initialRouteName 应用条件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-04
    • 1970-01-01
    • 1970-01-01
    • 2021-07-14
    • 1970-01-01
    • 2018-07-16
    相关资源
    最近更新 更多