react-native - goBack() 使用 React Navigation 到上一个/不同的堆栈

标签 react-native react-navigation

我正在努力解决我希望是一个简单的问题。我有多个 StackNavigator,每个都有不同的屏幕,除了 .navigate 之外,我还使用 Drawer 在主堆栈之间移动。像这样:

  • 主堆栈
    • 主屏幕(条目)
    • 成员(member)资料
  • 收件箱堆栈
    • 收件箱屏幕
    • 消息详情屏幕

在消息详细信息屏幕上,用户可以导航到个人资料。所以消息详细信息>配置文件。这很好用,就像在整个应用程序中一样。同一堆栈中的导航向前和向后都非常有用。我正在使用标准的 .navigate 继续前进。

this.props.navigation.navigate('MemberProfilePage')

但是,如果我点击后退按钮 - 或设置自定义后退按钮 - 用户将一直返回到主屏幕。如果我点击抽屉中的收件箱,屏幕仍将显示在消息详细信息上。

但我真的只想去:Message Details > Profile ... Profile goBack() to Message Details。

我已经尝试过默认的 goBack(),我尝试过像这样发送一个后退操作:

const backAction = NavigationActions.back({
  key: 'ProfileScreen'
})

const backAction = NavigationActions.back({
  key: null
})

感谢您的任何指导。

编辑:关于在 Drawer 中设置 backButton 的初步建议似乎有效。但这并不能解决问题。

我不想回到当前堆栈的初始屏幕。我想返回到我导航的屏幕,该屏幕位于不同的堆栈中。

最佳答案

在两个导航器上遇到同样的问题,返回总是会正确处理一个,而另一个错误,因为它会弹出到当前 StackNavigator 的根目录。

对我来说,解决方案是在两个 stackNavigators 中引用相同的屏幕,当您从两个不同的导航器导航到它时,会显示相同的屏幕,但会从不同的导航器加载导航器,一切都应该正常工作。希望这可以帮助。

关于react-native - goBack() 使用 React Navigation 到上一个/不同的堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45480755/

相关文章:

Android独有的闪屏: how to make it fill screen?

javascript - 运行时出错 `react-native run-android`

react-native - React Navigation back() 和 goBack() 不起作用

reactjs - react 导航 route.params typescript

reactjs - 导航到父堆栈的父堆栈

react-native - react 导航 : Prevent multiple instances to navigate to same screen

react-native - react native 图像位置

react-native - 以 react native 形式向字段添加选择菜单

react-native - 世博会上的洛蒂动画

reactjs - 合并在 navigation.navigate (React Native) 中做什么?