首页 > 解决方案 > React Native Navigation:转到特定的堆栈导航屏幕

问题描述

我正在使用 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中,屏幕的默认顺序是Screen1、Screen2、Screen3,所以调用这个stack Navigator时,默认显示Screen1。我不想更改此顺序。

但是,从抽屉导航器中,当用户单击时,DrawerScreen One我希望用户进入Screen2StackNavigatorOne有可能吗?

标签: react-nativereact-navigation

解决方案


在 React Navigation 中,您可以检查Nested Navigator

首先选择您的根组件One,然后选择Stack Navigator.

navigation.navigate('One', {
  screen: 'Screen2',
  params: {
    ...
  },
});

我假设,单击后退将转到您导航的屏幕。如果你想去Screen1,使用lazy选项 as false。我没有对此进行测试,drawerNavigator但是对于底部导航器,我们使用了lazy选项 as false


推荐阅读