【发布时间】:2018-11-01 22:02:00
【问题描述】:
我正在为我的 react native 应用程序使用 React Navigation。
我的根栈如下:
const AuthStack = createStackNavigator({
Authentication: {
screen: Authentication,
},
Login: {
screen: Login,
},
Register: {
screen: Register,
},
});
const AppStack = createStackNavigator({
Main: {
screen: Main,
},
});
export const RootNav = createSwitchNavigator(
{
AuthLoading: {
screen: AuthLoadingScreen,
},
App: {
screen: AppStack,
},
Auth: {
screen: AuthStack,
},
},
{
initialRouteName: 'AuthLoading',
}
);
Main是一个标签导航器,有3个堆栈导航器,如下:
const FeedStack = createStackNavigator({
Feed: {
screen: Feed,
},
});
const ExploreStack = createStackNavigator({
Explore: {
screen: Explore,
},
});
const AccountStack = createStackNavigator({
Account: {
screen: Account,
},
});
const NavBar = createBottomTabNavigator(
{
Feed: {
screen: FeedStack,
},
Explore: {
screen: ExploreStack,
},
Account: {
screen: AccountStack,
},
}
}
我的问题在于帐户堆栈。在“帐户”屏幕下方找到注销按钮,但是当我拨打 this.props.navigation.navigate('Auth') 时,什么也没有发生。
我尝试过使用this.props.navigation.reset() 和this.props.navigation.dispatch(),但它们都不起作用。
有谁知道当用户注销时如何切换回身份验证堆栈?
【问题讨论】:
-
您找到解决方案了吗?我想我遇到了同样的事情,努力“退出”嵌套堆栈并从切换导航器导航返回到另一条路线。
-
@tdous 是的,我最终将切换导航器作为道具传递给我的不同堆栈,然后就可以使用它了
-
谢谢。实际上,我已经设法使用最近的更改使其正常工作,而无需道具。如果有人觉得它有用,我会把它作为答案。
标签: react-native react-navigation