我有一个标签栏,带有用户个人资料标签。如果用户未登录,我希望它重定向到注册,但如果他们已登录,则转到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();
}
});
然而,我们非常简单地看到个人资料屏幕,理想情况下会直接进行注册,而不会显示任何个人资料屏幕。
答案 0 :(得分:1)
很好的问题,没有太多关于此功能的文档,这是答案。
({ scene, jumpToIndex }) => { jumpToIndex(scene.index); }
答案 1 :(得分:1)
Nikolai答案很老。 您可以按照以下答案进行操作。
tabBarOnPress={(props) => {
const routeName = props.navigation.state.key;
props.navigation.navigate(routeName)
}}