TabNavigator 上的 React Navigation 注销按钮
React Navigation logout button on TabNavigator
我在 StackNavigator
中有一个 TabNavigator
(在 StackNavigator
中我有 login
视图和 TabNavigator
,其中包含其他屏幕).
问题是我必须在选项卡上制作类似“Logout
”的按钮,它只是重定向到 Login
视图。
如果我尝试简单地重定向到 LoginView
,TabBar
仍然出现在屏幕底部,这不是我想要的。
有什么方法可以点击TabBar
按钮,然后return到初始的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'
});
完成!使用 tabBarOnPress property and the Navigation Actions.
const tab_bar = TabNavigator({ // This tabNavigator is inside a stackNavigator, wich contains the 'login' view
Home: {
screen: Home
},
Logout: {
screen: Logout // Empty screen, useless in this specific case
,navigationOptions: ({navigation}) => ({
tabBarOnPress: (scene, jumpToIndex) => {
return Alert.alert( // Shows up the alert without redirecting anywhere
'Confirmation required'
,'Do you really want to logout?'
,[
{text: 'Accept', onPress: () => { navigation.dispatch(NavigationActions.navigate({ routeName: 'login' }))}},
{text: 'Cancel'}
]
);
},
})
},
});
当用户单击 tabBar 上的 logout
按钮时会显示一个警告以确认操作,然后如果用户接受重定向到登录视图。
注意 (22/09/2017): 要使用 tabBarOnPress 属性 下载 master branch version(还不是 NPM 的版本)。
我在 StackNavigator
中有一个 TabNavigator
(在 StackNavigator
中我有 login
视图和 TabNavigator
,其中包含其他屏幕).
问题是我必须在选项卡上制作类似“Logout
”的按钮,它只是重定向到 Login
视图。
如果我尝试简单地重定向到 LoginView
,TabBar
仍然出现在屏幕底部,这不是我想要的。
有什么方法可以点击TabBar
按钮,然后return到初始的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'
});
完成!使用 tabBarOnPress property and the Navigation Actions.
const tab_bar = TabNavigator({ // This tabNavigator is inside a stackNavigator, wich contains the 'login' view
Home: {
screen: Home
},
Logout: {
screen: Logout // Empty screen, useless in this specific case
,navigationOptions: ({navigation}) => ({
tabBarOnPress: (scene, jumpToIndex) => {
return Alert.alert( // Shows up the alert without redirecting anywhere
'Confirmation required'
,'Do you really want to logout?'
,[
{text: 'Accept', onPress: () => { navigation.dispatch(NavigationActions.navigate({ routeName: 'login' }))}},
{text: 'Cancel'}
]
);
},
})
},
});
当用户单击 tabBar 上的 logout
按钮时会显示一个警告以确认操作,然后如果用户接受重定向到登录视图。
注意 (22/09/2017): 要使用 tabBarOnPress 属性 下载 master branch version(还不是 NPM 的版本)。