是否有任何理由不在react-navigation v5中有条件地渲染某些Navigator?
当查看Auth流的文档时,将进行所有操作以确保始终显示导航器。安装/卸载导航器是个坏主意吗?
例如,可以这样做吗?
<>
{isLoading ? (
<SplashScreen/>
) : (
<NavigationNativeContainer>
{userToken ? <HomeStackNavigator/> : <SignInStackNavigator/>}
</NavigationNativeContainer>
)}
</>
代替此:
<NavigationNativeContainer>
<Stack.Navigator>
{isLoading ? (
<Stack.Screen name="Splash" component={SplashScreen}/>
) : state.userToken === null ? (
<Stack.Screen name="SignIn" component={SignInScreen}/>
) : (
<Stack.Screen name="Home" component={HomeScreen}/>
)}
</Stack.Navigator>
</NavigationNativeContainer>
答案 0 :(得分:1)
可以这样做,但是保持相同的导航器将为任何状态更改(例如当用户登录时,Home
屏幕将变为动画。更改导航器意味着摆脱先前导航器的状态并使用新的导航器。
您还可以将“启动”屏幕保留在导航器之外,而仅将SignIn
和Home
屏幕保留在堆栈导航器中。取决于您希望动画的外观。