如何使用react-navigation在选项卡导航器中重置其他堆栈导航器

时间:2019-07-24 16:50:08

标签: react-native react-navigation react-navigation-stack

这是我的导航结构。

--SwitchNav
   --Main Tab Nav
      --Stack Nav A
      --Stack Nav B
      --Stack Nav C
      --Stack Nav D (Current)
   --Onboard Stack Nav

在堆栈导航D中的某个位置,我想重置堆栈导航A,B和C,但是我不想使用户离开堆栈导航D上的当前屏幕。

我一直在研究StackActions.reset,并了解如何使用它来重置并导航到特定的堆栈,但是我将如何使用(或以其他方式实现)我在上述场景中描述的内容?

1 个答案:

答案 0 :(得分:0)

没有具体的方法可以做到这一点。一个解决方案是在不进行导航的情况下执行this.props.dangerouslyGetParent(),并从该循环中穿过3个孩子并重置它们。例如:

resetOtherStacks=()=>{
   let parentNav=this.props.dangerouslyGetParent()
   parentNav.getChildNavigation("Stack Nav A").reset()
}

并对需要重置的每个堆栈进行重置。

函数getChildNavigation(ChildKey)需要您在创建MainTabNav时定义的childKey。

希望这对您有帮助!