首页 文章

React Navigation了解导航器嵌套

提问于
浏览
5

我已经使用反应导航了将近半年,但我仍然不理解它的嵌套部分 . 导航道具如何继承,如何沟通等 .

我从redux示例应用程序创建了一个关于零食的演示 .

Demo

我想了解这些:

  • 如果我导航到子导航器,导航道具会发生什么?

  • 如何从子导航器屏幕导航到父窗口或父母其他孩子的屏幕

  • 如何从州中删除子导航器?

最简单的示例:在登录事件中,我使用Main StackNavigator重置导航器 . 这个问题是,我必须手动重建整个Main状态 . 如果我能以某种方式删除Auth StackNavigator并保留主堆栈,那将会容易得多 .

  • 是否可以通过子导航器导航操作来触发redux事件?

正如doc所说,我用一个redux组件包装了主导航(StackNavigator)组件 . 它工作正常,直到我导航到子组件 . 导航道具niavigate方法停止调度redux动作 .

  • 这个,我无法在演示中重新创建

我在StackNavigator中有一个Component和一个DrawerNavigator . 如果我从Component导航到DrawerNavigator(那里只有一个屏幕),我不能用这个回到那个组件:

this.props.navigation.goBack()

奇怪的是,它在屏幕的组件中是唯一不可能的 . 从屏幕的 Headers 组件开始工作 .

1 回答

  • 1
    • 始终可以在 props.navigation 中访问 .

    需要

    • reset 操作才能导航到父/子导航器 .
      另外,由于#1127 key: null 是必需的

    • navigation.replace 是登录导航到主屏幕的另一个选项,如果屏幕在同一个导航器中,如果需要动画过渡,请使用 reset . 或者参见#295中的其他方法

    • navigate 只能导航到同一导航器中的屏幕,其他方法请参阅答案3 .

    • 也许该组件缺少 navigation 道具

    Working Demo

相关问题