react-native - 如何在 react 导航中的不同嵌套堆栈之间导航

标签 react-native react-navigation

目标

使用 react 导航,从导航器中的屏幕导航到不同导航器中的屏幕。

更多细节

如果我有以下导航器结构:

  • 父导航器
  • 嵌套导航器 1
  • 屏A
  • 屏B
  • 嵌套导航器 2
  • 屏C
  • 屏幕 D

  • 如何从嵌套导航器 2 下的屏幕 D 转到嵌套导航器 1 下的屏幕 A?现在,如果我尝试 navigation.navigate从屏幕 D 屏幕 A 会出现一个错误,说它不知道屏幕 A,只知道屏幕 C 和 D。

    我知道在本网站以及 GitHub( https://github.com/react-navigation/react-navigation/issues/983https://github.com/react-navigation/react-navigation/issues/335#issuecomment-280686611 )的各个地方都以各种形式询问过这个问题,但是对于如此基本的事情,缺乏明确的答案并滚动浏览数百条 GitHub 评论以搜索解决方案不是很好。

    也许这个问题可以为遇到这个非常常见问题的每个人编纂如何做到这一点。

    最佳答案

    更新:对于 React Navigation v5,请参阅 @mahi-man's answer .

    您可以使用 third parameter of navigate 指定子操作。
    例如,如果您想从嵌套导航器 2 下的屏幕 D 转到嵌套导航器 1 下的屏幕 A:

    this.props.navigation.navigate(
        'NestedNavigator1', 
        {}, 
        NavigationActions.navigate({ 
            routeName: 'screenB' 
        })
    )
    
    还要检查:
    https://reactnavigation.org/docs/nesting-navigators/

    关于react-native - 如何在 react 导航中的不同嵌套堆栈之间导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49826920/

    相关文章:

    css - 如何像普通标签栏一样为 `<View>`添加阴影

    react-native - 无限循环 FlatList

    javascript - Atom/Nuclide 中的代码中断语法突出显示

    react-native - 在嵌套堆栈之间导航后,将 'back' 操作设置为上一屏幕

    javascript - 将 Prop 传递给动态 TabNavigator

    React-native-maps 初始缩放 : 0 not working for iOS

    ios - React Native 开发人员菜单未加载

    react-native - React 导航在其他 StackNavigator 中制作透明屏幕

    javascript - 使用 React 抽屉导航时如何处理 iOS 上的后退按钮?

    react-native - react 导航导航()功能不起作用