我正在使用以下方式创建导航系统
StackNavigator-> DrawerNavigator->(屏幕A,屏幕B,屏幕C)
屏幕A是初始路线
使用
的屏幕A到屏幕Bthis.props.navigation.navigate("Screen B") //Working Fine
使用
从屏幕B到屏幕Cthis.props.navigation.navigate("Screen C") //Working Fine
在屏幕C中
this.props.navigation.goBack() //Not Working
但是
this.props.navigation.goBack(null) //It's going to Screen A instead of Screen B
这是怎么回事。
请帮助我,谢谢。
答案 0 :(得分:2)
由于您没有显示抽屉的导航结构,所以我不知道其中的三个屏幕是如何放置的。我假设它们是3个不同的抽屉屏幕
之所以发生这种情况,是因为您使用的是DrawerNavigation,当您在其中浏览时不会创建屏幕历史记录。
要解决此问题,您必须将导航结构更改为以下内容:
DrawerNavigation => StackNavigator => Screen A, B, C
答案 1 :(得分:0)
上面的答案是,抽屉式导航器不在堆栈中,因此您无法确定旅程的路径。
key
的{{1}}属性是动态创建的字符串,由goBack()
在每次导航到新路线时创建。
这些堆栈密钥存储在react-navigation
注意:如果您的目标是返回任何地方,请使用
this.props.navigation.state
而不指定结束目标。
像这个例子一样,您可以添加到堆栈中。
示例
.goBack(null)