这是我的导航结构。
--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,并了解如何使用它来重置并导航到特定的堆栈,但是我将如何使用(或以其他方式实现)我在上述场景中描述的内容?
答案 0 :(得分:0)
没有具体的方法可以做到这一点。一个解决方案是在不进行导航的情况下执行this.props.dangerouslyGetParent()
,并从该循环中穿过3个孩子并重置它们。例如:
resetOtherStacks=()=>{
let parentNav=this.props.dangerouslyGetParent()
parentNav.getChildNavigation("Stack Nav A").reset()
}
并对需要重置的每个堆栈进行重置。
函数getChildNavigation(ChildKey)
需要您在创建MainTabNav
时定义的childKey。
希望这对您有帮助!