javascript - React Navigation 理解导航器嵌套

标签 javascript react-native redux navigation react-navigation

我用了快半年的react-navigation了,但是嵌套的部分还是不懂。 navigation prop如何继承,如何通信等。

我从 redux 示例应用创建了一个关于小吃的演示。

Demo

我想了解这些:

  1. 如果我导航到子导航器,导航 Prop 会发生什么情况?

  2. 如何从 child 导航器屏幕导航到 parent 屏幕或 parent 其他 child 的屏幕

  3. 如何从状态中移除子导航器?

最简单的例子: 在登录事件中,我使用 Main StackNavigator 重置了导航器。 问题是,我必须手动重建整个 Main 状态。 如果我能以某种方式删除 Auth StackNavigator 并保留 Main Stack,那就容易多了。

  1. 是否可以通过子导航器的导航操作触发 redux 事件?

如文档所述,我用 redux 组件包装了主导航 (StackNavigator) 组件。在我导航到子组件之前,它工作正常。导航 Prop niavigate 方法停止调度 redux 操作。

  1. 这个,我无法在演示中重现

我在 StackNavigator 中有一个组件和一个 DrawerNavigator。 如果我从组件导航到 DrawerNavigator(那里只有 1 个屏幕),我无法返回到该组件:

this.props.navigation.goBack()

奇怪的是它在屏幕组件内部是唯一不可能的。从屏幕的标题组件开始工作。

最佳答案

  1. 它总是可以在props.navigation中访问。

  2. 需要
  3. reset 操作才能导航到父/子导航器。
    此外,由于 #1127 key: null 是必需的

  4. navigation.replace 是登录导航到主屏幕的另一个选项,如果屏幕在同一个导航器中,如果需要动画转换,请使用 reset。或者查看#295中的其他方法

  5. navigate只能在同一个navigator中导航到screen,其他方法引用答案3。

  6. 可能是组件缺少navigation props

Working Demo

关于javascript - React Navigation 理解导航器嵌套,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48888631/

相关文章:

Javascript 三元运算符——条件是什么?

reactjs - 从 useEffect 调用 dispatch

javascript - 在 typescript 中使用 react-redux connect

javascript - 如何在 c++ 中列出变体类型变量的所有属性,如 javascript 中的 console.log

javascript - 在 Docslist 中查找文件夹是否有子文件夹,以及该子文件夹是否有子文件夹等等

javascript - react promise - TypeError : Cannot read property 'then' of undefined

react-native - 如何在 native 天才聊天中显示与我聊天的人的姓名

android - React Native 应用程序 - 在 Android 8 真实设备上启动时崩溃/关闭

reactjs - Saga 观察者未接收或处理调度的操作

javascript - Json数组元素到html页面