React Native Navigation:从堆栈导航器中删除屏幕

React Native Navigation: Remove screen from stack navigator

我正在使用 React Navigation 5。

在顶部我有一个抽屉导航器,有以下屏幕:

  <Drawer.Navigator>
    <Drawer.Screen name="One" component={StackNavigatorOne} />
    <Drawer.Screen name="Two" component={StackNavigatorTwo} />
    <Drawer.Screen name="Three" component={StackNavigatorThree} />
  <Drawer.Navigator/>

StackNavigatorOne 中,我有一个堆栈导航器,

<Stack.Navigator>
  <Stack.Screen name="Screen1" component={Screen1} />
  <Stack.Screen name="Screen2" component={Screen2} />
  <Stack.Screen name="Screen2" component={Screen3} />
</Stack.Navigator>

当用户从抽屉中单击 StackNavigatorOne 时,用户会转到 StackNavigatorOneScreen 1。在屏幕 1 中,用户在几秒钟后被带到 Screen2

一旦用户达到 Screen2,我想从 StackNavigatorOne 中完全删除 Screen 1,以便下次用户在抽屉中单​​击 StackNavigatorOne 时,那里现在没有Screen1,直接把用户带到Screen2。这可能吗?你能帮忙吗?

是的,因为您使用的是 React Navigation 5,所以您可以有条件地渲染堆栈或屏幕。 例如;

<Stack.Navigator>
 { !isScreenOneDisplayed && <Stack.Screen name="Screen1" component={Screen1} /> }
  <Stack.Screen name="Screen2" component={Screen2} />
  <Stack.Screen name="Screen3" component={Screen3} />
</Stack.Navigator>