我正在努力解决我希望的一个简单问题。我有多个StackNavigators,每个都有各种屏幕,除了.navigate之外,我还使用抽屉在主堆栈之间移动。像这样:
在消息详细信息屏幕上,用户可以导航到“个人资料”。所以留言详情>轮廓。这很有效,就像整个应用程序一样。在同一堆栈中导航可以向前和向后工作。我正在使用标准.navigate继续前进。
this.props.navigation.navigate('MemberProfilePage')
但是,如果我点击后退按钮 - 或设置自定义后退按钮 - 用户将被一直带回主屏幕。如果我点击抽屉中的收件箱,屏幕仍将显示在消息详细信息中。
但我真的只想去:留言详情>配置文件...配置文件goBack()到消息详细信息。
我已经尝试过默认的goBack(),我尝试过调度这样的后退动作:
const backAction = NavigationActions.back({
key: 'ProfileScreen'
})
或
const backAction = NavigationActions.back({
key: null
})
感谢任何方向。
编辑:关于在抽屉中设置backButton的初步建议似乎有效。但它并没有解决问题。
我不想被带回当前堆栈的初始屏幕。我想回到我导航的屏幕,该屏幕位于不同的堆栈中。
答案 0 :(得分:1)
在DrawerNavigatorConfig中更改此道具
backBehavior='none' //default is initialRoute
backBehavior - 后退按钮是否会导致切换到初始状态 路线?如果是,请设置为 initialRoute ,否则设置为无。默认为 initialRoute 行为。
https://reactnavigation.org/docs/navigators/drawer#DrawerNavigatorConfig
检查它是否正常工作......
答案 1 :(得分:0)
使用两个导航器时遇到相同的问题,然后返回总是正确地引导您,而导航到当前StackNavigator
的根时则错误。
对我来说,解决方案是在两个stackNavigators
中都引用相同的屏幕,当您从两个不同的导航器导航至该屏幕时,将显示相同的屏幕,但将从不同的导航器以及所有内容加载应该工作正常。希望这可以帮助。