react-native - 使用 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>
);
}
解决方案
推荐阅读
- firebase - 如何从 Firebase 中的 flutter_facebook_login 获取 Facebook 电子邮件?
- ios - 在 Swift 中从 Sqlite DB 加载数据时索引超出范围
- php - 文件上传到服务器但无法在 mysql 中存储文件详细信息
- java - 如何使用 ParameterizedTest 中的参数的嵌套属性定义显示名称(name = #{index} multiply {0[0]} x {0[1]} = {0[2]})
- django - AWS Lightsail 上未提供静态文件
- reactjs - 无法从 sqlite 在 react usestate 数组中设置记录
- c# - 如何在c#中有效地比较两个十进制值
- java - 使用 LambdaMetafactory 线程进行动态方法调用是否安全?
- azure-iot-hub - 使用按记录分组的最后 5 条记录的多维数组调用 Azure 流分析 UDF
- firebase - 如何在 Flutter 中从 Firebase 存储中获取相关图像