我想在注销用户时重置堆栈导航堆栈。目前,如果我注销,我的用户就会被带到我使用switchNavigator的第一个屏幕上,如果一个用户重新登录,他们会被带到他们最后一次登录的屏幕上。我希望用户在注销后被定向到客户提要,然后再登录。
我的领航员看上去像这样
export const Tabs = DrawerNavigator(
{
AuthLoading: AuthLoading,
Auth: UnAuthenticatedTabs,
App: AuthenticatedTabs
},
{
contentComponent: SideMenu,
initialRouteName: 'AuthLoading',
}
);
const UnAuthenticatedTabs = SwitchNavigator({
LogIn: { screen: SignIn },
Registration: { screen: Registration },
ForgotPassword: { screen: ForgotPassword }
})
const AuthenticatedTabs = StackNavigator({
CustomerFeed: { screen: CustomerFeed,
navigationOptions: ({ navigation }) => ({
title: 'Customer Feed',
})
},
Customer: { screen: Customer,
navigationOptions: ({ navigation }) => ({
title: 'Customer'
})
},
})发布于 2018-10-03 19:22:58
当用户登录并路由到stackNavigator时,最终为我工作的是重新设置堆栈。当用户注销并路由到stackNavigator时,不要尝试重置switchNavigator。
const resetAction = NavigationActions.reset({
index: 0,
actions: [NavigationActions.navigate({ routeName: 'CustomerFeed' })],
});
this.props.navigation.dispatch(resetAction);https://stackoverflow.com/questions/52630783
复制相似问题