1

这是我的导航结构。

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

4

1 回答 1

0

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

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

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

该函数getChildNavigation(ChildKey)需要您在创建MainTabNav.

希望这对你有帮助!

于 2019-07-25T07:42:38.950 回答