【发布时间】:2017-09-18 17:50:11
【问题描述】:
我在StackNavigator 中有一个TabNavigator(在StackNavigator 中,我有login 视图和TabNavigator,其中包含其他屏幕)。
问题是我必须在选项卡上制作类似“Logout”按钮的东西,该按钮只是重定向到Login 视图。
如果我尝试简单地重定向到LoginView,TabBar 仍然出现在屏幕底部,这不是我想要的。
有没有什么方法可以点击TabBar按钮,回到最初的StackNavigator? (比如OnPress 属性或类似的东西)。
这是我的路由器
const tab_bar = TabNavigator({
Home: {
screen: HomeScreen
},
Logout: {
screen: LoginView // this just show the view but the tabBar still appearing
},
});
const Login = StackNavigator({
login: {
screen: LoginView,
},
List: {
screen: tab_bar
,navigationOptions: {header:null}
}
},
{
initialRouteName: 'login'
});
【问题讨论】:
-
您可以使用tabBarVisible 属性来显示您不希望标签栏显示的屏幕。
-
更好的方法是有一个注销的路由堆栈,然后登录一个。在您的顶级应用程序中,如果loggedIn = true,则显示该路线。传递一个 screenprop,如果你想注销,它将设置 loggedIn:false,它将呈现另一个堆栈
-
如果我使用tabBarVisible,我可以在其他屏幕上滑动,我需要的是第一个
StackNavigator中的goBack(从TabNavigator到loginView)
标签: react-native react-navigation tabnavigator