我想知道按下按钮login
后是否可以处理登录屏幕,
我有一个router.js:
export const TabLoged= TabNavigator({
Home: {
screen: HomeStack,
},
MyPatient:{
screen: MyPatientStack
},
MyAccount: {
screen: MyAccount,
}
});
export const Tab = TabNavigator({
Home: {
screen: HomeStack,
},
Login: {
screen: LoginStack,
}
});
export const Root = StackNavigator({
Tab: {
screen: Tab,
}
},{headerMode:'none'})
在export const Root
我希望更改代码如下:
export const Root = StackNavigator({
Tab: {
// here i want to set the `alredyLogin` to be boolean, but i dont know how to do that
screen: alreadyLogin ? TabLoged : Tab,
}
},{headerMode:'none'})
参考this question我不知道如何处理这个问题,所以我想知道还有另一种方法可以归档我的目标吗?
答案 0 :(得分:2)
要实现所需的行为,您可以使用SwitchNavigator
。在doc中有一个很好的例子。您可以查看here。
SwitchNavigator参考
SwitchNavigator(RouteConfigs,SwitchNavigatorConfig)
来自文档的示例
const AppStack = StackNavigator({ Home: HomeScreen, Other: OtherScreen });
const AuthStack = StackNavigator({ SignIn: SignInScreen });
export default SwitchNavigator(
{
AuthLoading: AuthLoadingScreen,
App: AppStack,
Auth: AuthStack,
},
{
initialRouteName: 'AuthLoading',
}
);