首页 > 解决方案 > 使用 react-navigation 5.0.5 的身份验证流程问题

问题描述

实际行为:

我正在为一个项目实施身份验证流程。当用户未成功登录时,我正在渲染一堆带有登录屏幕的屏幕作为初始路由。并在用户登录成功时以主屏幕作为初始路由呈现另一组屏幕。

我的问题是,当用户登录成功时,不是直接出现主屏幕,而是登录屏幕出现几秒钟,不允许任何屏幕交互,然后主屏幕出现一些类似于 react-navigation 推送转换的动画。

预期行为:

我想在成功登录时显示主屏幕,没有上面提到的任何错误。

环境:

“react-native”:“0.61.5”,“@react-navigation/native”:“^5.0.5”,“@react-navigation/stack”:“^5.0.5”“react-native-reanimated” :“^1.7.0”、“react-native-safe-area-context”:“^0.7.3”、“react-native-screens”:“^2.0.0-beta.7”、“@react-本机社区/屏蔽视图”:“^0.1.6”,

代码:

 homeStack = () => {
    return (
      <>
        <Stack.Screen name="Home" component={Home} options={{ headerShown: false }} />
        <Stack.Screen name="JobsFormsList" component={JobsFormsList} />
        <Stack.Screen name="Forms" component={Forms} />,
        <Stack.Screen name="SignTemp" component={SignTemp}
          options={{ headerShown: false }}
        />
      </>
    );
  }
loginStack = () => {
        return (
          <>
           <Stack.Screen name="Login" component={Login} options={{ headerShown: false }} />
            <Stack.Screen name="Home" component={Home} options={{ headerShown: false }} />
            <Stack.Screen name="JobsFormsList" component={JobsFormsList} />
            <Stack.Screen name="Forms" component={Forms} />,
            <Stack.Screen name="SignTemp" component={SignTemp}
              options={{ headerShown: false }}
            />
          </>
        );
      }


 render() {
    return(
    <NavigationContainer>
      <Stack.Navigator screenOptions={{ gestureEnabled: false }}>
        {this.state.user_data === null ? this.loginStack() : this.homeStack()}
      </Stack.Navigator>
    </NavigationContainer>
  );
}

标签: react-nativeauthenticationstack-navigatorreact-navigation-v5

解决方案


推荐阅读