Javascript 如何在模糊上重置堆栈导航器?(反应本机,反应导航)

Javascript 如何在模糊上重置堆栈导航器?(反应本机,反应导航),javascript,node.js,react-native,react-navigation,Javascript,Node.js,React Native,React Navigation,因此,我有以下导航结构: NavigationContainer --Tab.Navigator ----Tab.Screen (Home) ------Stack.Navigator --------Stack.Screen (Overview) --------Stack.Screen (Goals) --------Stack.Screen (Economy) ----Tab.Screen (Stats) ------Stack.Navigator --------Stack.Screen

因此,我有以下导航结构:

NavigationContainer
--Tab.Navigator
----Tab.Screen (Home)
------Stack.Navigator
--------Stack.Screen (Overview)
--------Stack.Screen (Goals)
--------Stack.Screen (Economy)
----Tab.Screen (Stats)
------Stack.Navigator
--------Stack.Screen (Overview)
--------Stack.Screen (Economy Page)
--------Stack.Screen (Consumption Page)
----Tab.Screen (Challenges)
----Tab.Screen (Data)
现在的问题是,当选项卡更改时,我希望所有堆栈导航器都重置为默认的概览页面。这意味着,例如,如果您在主屏幕概览上,输入goals stackscreen,将选项卡更改为stats,然后返回home选项卡,您将返回概览,但现在它仍将在goals屏幕上

我尝试过使用react navigation中的CommonActions方法,如下所示:

navigation.addListener('blur', () => {
    console.log('Home screen changed');
    navigation.dispatch(
        CommonActions.reset({
          index: 1,
          routes: [
            { name: HomeScreens.Start },
          ],
        }),
    );
  });
export function HomeScreen({ navigation }:any) {
  return (
    <NavigationContainer independent = {true} >
      <Stack.Navigator initialRouteName={HomeScreens.Start} headerMode = "none">
        <Stack.Screen name = {HomeScreens.Start} component={StartPage} />
        <Stack.Screen name= {HomeScreens.Economy} component={EconomyPage} />
        <Stack.Screen name= {HomeScreens.Goal} component={GoalPageFunc} />
      </Stack.Navigator>
    </NavigationContainer>
  );
}
但问题是导航元素引用父导航器。这意味着,如果在每个堆栈导航器中执行重置,也会发生我不想要的情况

现在,我的主屏幕如下所示:

navigation.addListener('blur', () => {
    console.log('Home screen changed');
    navigation.dispatch(
        CommonActions.reset({
          index: 1,
          routes: [
            { name: HomeScreens.Start },
          ],
        }),
    );
  });
export function HomeScreen({ navigation }:any) {
  return (
    <NavigationContainer independent = {true} >
      <Stack.Navigator initialRouteName={HomeScreens.Start} headerMode = "none">
        <Stack.Screen name = {HomeScreens.Start} component={StartPage} />
        <Stack.Screen name= {HomeScreens.Economy} component={EconomyPage} />
        <Stack.Screen name= {HomeScreens.Goal} component={GoalPageFunc} />
      </Stack.Navigator>
    </NavigationContainer>
  );
}
导出功能主屏幕({navigation}:any){
返回(
);
}
是否可以在更改选项卡时在此处执行某些操作来重置stacknavigator,但在stacknavigator中导航时不可以