我已经使用反应导航了将近半年,但我仍然不理解它的嵌套部分 . 导航道具如何继承,如何沟通等 .
我从redux示例应用程序创建了一个关于零食的演示 .
我想了解这些:
-
如果我导航到子导航器,导航道具会发生什么?
-
如何从子导航器屏幕导航到父窗口或父母其他孩子的屏幕
-
如何从州中删除子导航器?
最简单的示例:在登录事件中,我使用Main StackNavigator重置导航器 . 这个问题是,我必须手动重建整个Main状态 . 如果我能以某种方式删除Auth StackNavigator并保留主堆栈,那将会容易得多 .
- 是否可以通过子导航器导航操作来触发redux事件?
正如doc所说,我用一个redux组件包装了主导航(StackNavigator)组件 . 它工作正常,直到我导航到子组件 . 导航道具niavigate方法停止调度redux动作 .
- 这个,我无法在演示中重新创建
我在StackNavigator中有一个Component和一个DrawerNavigator . 如果我从Component导航到DrawerNavigator(那里只有一个屏幕),我不能用这个回到那个组件:
this.props.navigation.goBack()
奇怪的是,它在屏幕的组件中是唯一不可能的 . 从屏幕的 Headers 组件开始工作 .
1 回答
props.navigation
中访问 .需要
reset
操作才能导航到父/子导航器 .另外,由于#1127
key: null
是必需的navigation.replace
是登录导航到主屏幕的另一个选项,如果屏幕在同一个导航器中,如果需要动画过渡,请使用reset
. 或者参见#295中的其他方法navigate
只能导航到同一导航器中的屏幕,其他方法请参阅答案3 .也许该组件缺少
navigation
道具Working Demo