如何使用反应导航在选项卡导航器中重置其他堆栈导航器



这是我的导航结构。

--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,并了解如何使用它来重置和导航到特定堆栈,但是我将如何使用它(或以其他方式完成(我在上述场景中描述的内容?

没有特定的方法来做到这一点。一个解决方案是不导航,做一个this.props.dangerouslyGetParent(),然后从那个循环中穿过 3 个孩子并重置它们。例如:

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

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

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

希望对您有所帮助!

相关内容

  • 没有找到相关文章

最新更新