我有底部选项卡堆栈....在每个堆栈中都有单屏或嵌套堆栈导航器。
问题:
第一个选项卡 - 主屏幕第二个选项卡 - MyDetailsStack(createStackNavigator) - detailScreen1 (initialRoute) - detailScreen2
目标:当用户访问详细detailScreen2 ....然后返回主屏幕并单击第二个选项卡...。我需要重置第二个选项卡以显示它指向的初始路线,即detailScreen1。此时显示了我留下的任何屏幕(即detailScreen2)。
请检查博览会的问题。
https://snack.expo.dev/@rosnk/nested-route-reset-on-tabchange
目前尝试的解决方案:
- 尝试添加以下代码:
<Tab.Screen
name="MyDetailsTabStack"
component={MyDetailsStack}
options={{
title: 'My Details',
tabBarLabel: 'My Details',
}}
listeners={({ navigation, route }) => ({
tabPress: (e) => {
navigation.dispatch(
CommonActions.reset({
index: 1,
routes: [
{ name: 'DetailScreen1' },
{
name: 'DetailScreen2',
},
],
})
);
},
})}
/>
尝试对此堆栈建议的解决方案参考: How to reset a Stack in a different Tab using React Navigation 5.x