React Navigation - 如何切换Tab导航以处理登录屏幕?

时间:2018-04-10 06:50:28

标签: react-native login react-navigation

我想知道按下按钮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我不知道如何处理这个问题,所以我想知道还有另一种方法可以归档我的目标吗?

1 个答案:

答案 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',
  }
);