我的应用程序有一个TabNavigator,每个Tab中都有一个StackNavigator。通过单击不同的选项卡在堆栈之间导航时,我不会重置堆栈,因此,当您更改选项卡时,堆栈将包含先前的状态。但是,有时候,我想从一个选项卡的屏幕中导航到另一个选项卡中的特定屏幕,并且在这种情况下,我想重置目标选项卡中的堆栈。
TabNavigator
Tab1
StackNavigator
- ScreenA
- ScreenB
Tab2
StackNavigator
- Screen1
- Screen2
我希望能够在Screen2上放置一个按钮,以重置Tab1上的堆栈。
我想知道这里文档中提到的“ target”参数是否会有所帮助,但是没有如何使用它的示例。 https://reactnavigation.org/docs/navigation-actions/
((我已经在这里搜索过,但是针对4.x的建议答案似乎不再适用)。谢谢!
这可能是一个解决方案。单击选项卡时,它将重置堆栈。但是在主屏幕滑入时会有明显的延迟。(React Navigation V5)
<bottomNavigator.Screen
name="ScreenA"
component={component}
listeners={({ navigation }) => ({
tabPress: () => {navigation.navigate('ScreenA');
},
})}
/>