如何在堆栈的任何屏幕按下后退按钮时始终导航到堆栈的初始路径?

How to always navigate to the initial route of the stack on back button press of any screen of the stack?

我有如下的底部导航器

 <DirectStack.Navigator screenOptions={appStackScreenOption}>
      <DirectStack.Screen name="CList" component={CList}
        options={(navigation) => ({
          headerRight: () => (
            <View style={{ flexDirection: 'row' }}>{AddListButton(navigation)}</View>
          ),
        })} />
      <DirectStack.Screen name="C" component={C} />
      <DirectStack.Screen
        name="AddList"
        component={AddList}
        
      />
    </DirectStack.Navigator >

默认情况下,当我第一次加载屏幕时,我在 CList 并按下右键,我导航到 AddList 屏幕,然后从 AddList 屏幕导航到 C 屏幕 到目前为止一切都很好,但是当我从 C 屏幕按下后退 header 按钮时,我想导航到 CList.

的初始屏幕

目前,当我从 C 屏幕按后退 header 按钮时,我导航到我不想要的 AddList 屏幕。

您可以通过调用 navigation.popToTop()

弹出所有屏幕堆栈来实现此目的

也参考这个popToTop