【发布时间】:2019-07-09 07:50:43
【问题描述】:
我有下面的三个导航器,我在登录完成后导航到仪表板屏幕,但是当我想从仪表板屏幕注销时遇到问题,this.props.navigation.navigate('Login ') 工作正常,但我想在按下退出按钮时清除堆栈。
const DashBoardStackNavigator = createStackNavigator({
DashBoard: DashBoard,
Second:Second,
Third:Third
})
const BottomTabNavigator = createBottomTabNavigator({
DashBoardStackNavigator,
Account,
Report,
Members
}})
const AppStackNavigator = createStackNavigator({
Login: Login,
BottomTabNavigator: BottomTabNavigator
})
export default createAppContainer(AppStackNavigator)
我尝试了以下没有运气
const resetAction = StackActions.reset({
index: 0,
actions: [NavigationActions.navigate({ routeName: 'Login' })],
});
this.props.navigation.dispatch(resetAction);
错误:没有为键登录定义路由,必须是其中之一 仪表板
【问题讨论】:
-
尝试将 'key: null' 添加到您的 StackActions.reset。看看它是否有效
-
它不工作
-
试试这个,
this.props.navigation.dispatch(StackActions.popToTop())这将弹出除第一个屏幕之外的所有屏幕。 -
当我导航到仪表板屏幕时,我已经重置了堆栈并且仪表板是第一个屏幕,因为我不希望用户在登录后导航回登录屏幕。
-
同样的问题,你找到解决办法了吗? @basilsatti
标签: reactjs react-native navigation react-navigation