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

With react-native-router-flux, how can I have a tab bar click specify which tab to switch to?

我有一个标签栏,其中有一个用户个人资料标签。如果用户未登录,我希望它重定向到注册,但如果他们已登录,则转到 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();
  }
});

但是我们会非常短暂地看到个人资料屏幕,理想情况下会直接进入注册,而不显示任何个人资料屏幕。

问得好,这个函数的文档不多,答案在这里。

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

Nikolai 答案是旧的。 您可以按照以下答案进行操作。

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