因此,我刚刚将ignite-bowser项目升级到他们的5.0 模板,其中包括 React Navigation 5,这需要从使用SwitchNavigator在“Auth”和“App”StackNavigators 之间交换的传统推荐方法更改为新的声明式身份验证流程方法使 SwitchNavigator 变得冗余。
仅供参考,Ignite Bowser 项目本质上是 React Native 模板应用程序,由
React Native
React Navigation
MobX State Tree
TypeScript
Reactotron
And more!
Run Code Online (Sandbox Code Playgroud)
true因此,这一切看起来都很简单,但是当使用存储在应用程序商店之一中的布尔值并设置为在身份验证方法中调用的操作中时,我无法让实际的导航器进行切换。
根据服务器日志和 Reactotron 源,身份验证工作正常。之后重新加载应用程序确实会呈现应用程序导航器,但会话实际上并不有效,因为内存已被清除。所有后续请求都会失败,但应用程序不会切换到身份验证导航器。
以下是相关代码片段:
根导航器.tsx
const RootStack = () => {
const { pbidStore } = useStores()
return (
<Stack.Navigator
screenOptions={{
headerShown: false,
gestureEnabled: true,
stackPresentation: "modal",
}}
>
{pbidStore.isAuthenticated ? (
<Stack.Screen
name="pbidStack"
component={PbidNavigator}
options={{
headerShown: false,
}}
/>
) : (
<Stack.Screen
name="authStack"
component={AuthNavigator} …Run Code Online (Sandbox Code Playgroud) javascript reactjs react-native react-navigation mobx-react-lite