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