我正在努力解决我希望是一个简单的问题。我有多个带有各种屏幕的StackNavigator。像这样:
主堆栈
主屏幕(条目)聊天堆栈
聊天列表
聊天详细信息屏幕
将成员添加到列表
邀请朋友聊天
在聊天列表中,用户可以导航到邀请朋友聊天屏幕。所以聊天列表屏幕>邀请朋友到聊天屏幕。这非常有效,就像它在整个应用程序中所做的那样。
在同一堆栈中导航无论向前还是向前都非常有效。我正在使用标准。导航以向前移动。
this.props.导航.导航("邀请朋友聊天")
在成功邀请朋友后,我将导航到聊天列表屏幕。
在这里,我想在导航到新屏幕时从堆栈中删除活动屏幕
链接参考反应导航
例如
Going back from a specific screen Consider the following navigation stack history: navigation.navigate(SCREEN_KEY_A); ... navigation.navigate(SCREEN_KEY_B); ... navigation.navigate(SCREEN_KEY_C); ... navigation.navigate(SCREEN_KEY_D); Now you are on screen D and want to go back to screen A (popping D, C, and B). Then you need to supply a key to goBack FROM: navigation.goBack(SCREEN_KEY_B) // will go to screen A FROM screen B
我不完全清楚你的问题,但听起来你喜欢这种行为。。。
A > B > C > D > goBack() => A
以下情况也会成立吗?
A > B > C > goBack() => A
A > B > goBack() => A
A > goBack() => A
如果是这样,那么您将希望使用navigation.reset()
,而不是将新场景推送到导航堆栈上的navigation.navigate()
。有关更多信息,请参阅React Navigation Docs(Reset)