如何在不将其添加到后台堆栈的情况下导航到屏幕?

How to navigate to a Screen without adding it to backstack?

我的导航器是:

const MyStack = createStackNavigator();

const MyRoutes= () => (
  <MyStack.Navigator headerMode='none' initialRouteName='First'>
    <MyStack.Screen name='First' component={ScreenFirst} />
    <MyStack.Screen name='Second' component={ScreenSecond} />
  </MyStack.Navigator>
);

我的实际流量是:

First -> (next) -> Second -> (back) -> First

但我想显示 First 路线而不将其添加到后台堆栈,所以它会是:

First -> (next) -> Second -> (back) -> (default OS behavior)

可能吗?如果是,如何?我正在使用 "@react-navigation/native": "^5.6.1".

我知道我可以控制 Second 路由中的后退行为,但由于在 Android (Java/Kotlin) 中可以显示片段而不将其添加到后台堆栈,我假设 React Native 中存在类似的东西。

您可以使用 navigation.replace('Second')。更多信息在这里 https://reactnavigation.org/docs/stack-actions#replace.