如何导航到屏幕而不将其添加到后台堆栈?

Raf*_*res 5 javascript react-native react-native-navigation

我的导航器是:

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>
);
Run Code Online (Sandbox Code Playgroud)

我的实际流程是:

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>
);
Run Code Online (Sandbox Code Playgroud)

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

First -> (next) -> Second -> (back) -> First
Run Code Online (Sandbox Code Playgroud)

是否可以?如果是,怎么办?我在用"@react-navigation/native": "^5.6.1"

我知道我可以控制路由中的 Back 行为Second,但由于在 Android (Java/Kotlin) 中可以显示 Fragment 而无需将其添加到 backstack,我想 React Native 中也存在类似的东西。

小智 3

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