2017-10-14 34 views
1

我正在努力与我希望是一个简单的问题。我有多个StackNavigators与各种屏幕。 像这样:反应导航goBack()到定义的屏幕

主堆栈
主屏幕(项)

聊天堆栈
聊天列表
聊天详细信息屏幕
添加成员列出
邀请好友聊天

在聊天列表上,用户可以导航到邀请朋友进入聊天屏幕。所以聊天列表屏幕>邀请朋友聊天屏幕。这很好,就像它在整个应用程序中一样。

导航在同一个堆栈中工作都很好。我正在使用标准的导航进行前进。

this.props.navigation.navigate(“邀请好友聊天”)

这里成功后邀请朋友要前往的聊天列表屏幕。

在这里,我想从堆栈中删除活动的屏幕,而导航到新屏幕

链接引荐React-Navigation

例如

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 

回答

1

你的问题是不完全清楚,我,但它听起来像你想这种行为......

A > B > C > D > goBack() => A 

将如下面的是真的?

A > B > C > goBack() => A 
A > B > goBack() => A 
A > goBack() => A 

如果是这样的话,而不是navigation.navigate()其推新的场景到导航堆栈,你会想用navigation.reset()。欲了解更多信息,请参阅React Navigation Docs (Reset)

+0

我想从一个 导航到B, 但导航到屏幕B之前我想删除一个画面从堆栈是否有可能 –

+0

这并不有助于澄清我。 –

+0

是的,相同的解决方案应该可以帮到您 –