如何在堆栈的任何屏幕按下后退按钮时始终导航到堆栈的初始路径?
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
我有如下的底部导航器
<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