javascript - 如何在 react 导航6中分别处理两个抽屉?

标签 javascript react-native react-navigation react-navigation-v6 react-native-drawer

我创建了两个抽屉导航器

const MenuDrawerRight = createDrawerNavigator();
const MenuDrawerLeft = createDrawerNavigator();

function RightDrawerScreens() {
  return (
    <MenuDrawerRight.Navigator
      drawerContent={props => <RightDrawerContent {...props} />}
      screenOptions={{
        headerShown: false,
        drawerType: 'back',
        drawerPosition: 'right',
      }}>
      <MenuDrawerRight.Screen name="Menu" component={Menu} />
      <MenuDrawerRight.Screen name="DashBoard" component={DashBoard} />
    </MenuDrawerRight.Navigator>
  );
}

function LeftDrawerScreens() {
  return (
    <MenuDrawerLeft.Navigator
      drawerContent={props => <LeftDrawerContent {...props} />}
      screenOptions={{headerShown: false}}>
      <MenuDrawerLeft.Screen name="Menu" component={Menu} />
      <MenuDrawerLeft.Screen name="DashBoard" component={DashBoard} />
    </MenuDrawerLeft.Navigator>
  );
}

创建了单独的组件来获取抽屉内容。

现在如何将这两个抽屉包装在一个导航器中以及如何分别打开这些抽屉(单击第一个按钮时打开一个抽屉,单击第二个按钮时打开第二个抽屉)

如果您需要任何其他详细信息,请在评论部分询问。

最佳答案

我像这样把一个抽屉包裹在另一个抽屉里

function MenuDrawerScreen() {
  return (
    <MenuDrawerRight.Navigator
      drawerContent={props => <RightDrawerContent {...props} />}
      screenOptions={{
        headerShown: false,
        drawerType: 'back',
        drawerPosition: 'right',
      }}
      initialRouteName="MenuScreen">
      <MenuDrawerRight.Screen name="MenuScreen" component={Menu} />
      <MenuDrawerRight.Screen name="DashBoard" component={DashBoard} />
      <MenuDrawerRight.Screen name="LeftDrawer" component={LeftDrawerScreens} />
      <MenuDrawerRight.Screen name="Profile" component={Profile} />
      <MenuDrawerRight.Screen name="Logout" component={Logout} />
    </MenuDrawerRight.Navigator>
  );
}

function LeftDrawerScreens() {
  return (
    <MenuDrawerLeft.Navigator
      drawerContent={props => <LeftDrawerContent {...props} />}
      screenOptions={{headerShown: false}}>
      <MenuDrawerLeft.Screen name="Menu" component={MenuDrawerScreen} />
    </MenuDrawerLeft.Navigator>
  );
}

然后使用navigation.getParent().openDrawer()打开父抽屉,使用navigation.openDrawer()打开子抽屉

关于javascript - 如何在 react 导航6中分别处理两个抽屉?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70981749/

相关文章:

javascript - 在 Javascript 中模拟 window.location.href

javascript - Firebase Firestore - 异步/等待在继续之前不等待获取数据?

javascript - 仅通过处理程序旋转图像,而不是图像本身

react-native - 从嵌套导航器中隐藏父级的导航标题

react-native - 如何重置嵌套在抽屉导航器中的堆栈导航器的状态?

react-native - goBack 总是在 react 导航中回到主页/第一个屏幕

javascript - react / react Hook : onChange function to change text is changing for all 3 elements simultaneously instead of just one

javascript - React Native setState() 和 Android 上的动画

react-native - 如何在 native react 中自定义 Material 底部选项卡导航器?

ios - React Native ios不显示本地镜像