使用react-native-router-flux,如何使用标签栏单击指定要切换到哪个选项卡?

时间:2018-01-17 21:14:58

标签: javascript react-native routing react-native-router-flux

我有一个标签栏,带有用户个人资料标签。如果用户未登录,我希望它重定向到注册,但如果他们已登录,则转到userProfile选项卡。

这里是代码:

         <Tabs
           key="tabbar"
         >
           {/* Main Screen */}
           <Scene
             key="main"
             component={MainScreen}
             title="Main"
             tab
           />
           {/* User Profile */}
           <Scene
             key="profile"
             component={ProfileScreen}
             title="Profile"
             tab
             type="reset"
             tabBarOnPress={() => {
               if (this.props.userIsLoggedIn) {
                 // how to show the correct tab. tried this didn't 
                 // work:
                 // return NavigationActions.tabbar({routes: 1});
               }
               return NavigationActions.loginSignup();
             }}
           />
         </Tabs>

我有它,如果用户没有登录,它确实导航到正确的屏幕进行注册,但我不知道如果用户登录,如何让它显示标签。

编辑:*我们已经尝试过了

onEnter={() => {
  if (!this.props.userIsLoggedIn) {
    NavigationActions.loginSignup();
  }
});

然而,我们非常简单地看到个人资料屏幕,理想情况下会直接进行注册,而不会显示任何个人资料屏幕。

2 个答案:

答案 0 :(得分:1)

很好的问题,没有太多关于此功能的文档,这是答案。

({ scene, jumpToIndex }) => { jumpToIndex(scene.index); }

答案 1 :(得分:1)

Nikolai答案很老。 您可以按照以下答案进行操作。

tabBarOnPress={(props) => {
  const routeName = props.navigation.state.key;
  props.navigation.navigate(routeName)
}}