我发现了一个 createDrawerNavigator 嵌套在 createBottomTabNavigator 中的错误。我已经建立了一个博览会项目,以便您可以自己进行测试:https://snack.expo.io/Hy299PSRN
该错误的描述如下:
当您使用内置手势通过在屏幕上左右滑动来打开和关闭抽屉时,尤其是当您没有完全打开它然后切换到另一个时。在我的示例中为Tab,屏幕2或3,该应用程序立即切换回抽屉屏幕。
在我的情况下,我在同一屏幕上使用了两个抽屉,但是也可以仅在抽屉上复制它。这是导航设置:
const RightDrawer = createDrawerNavigator(
{ Screen1 },
{
contentComponent: Drawer2,
drawerPosition: 'right',
drawerWidth: SCREEN_WIDTH - 50,
edgeWidth: SCREEN_WIDTH * 0.5,
getCustomActionCreators: (route, stateKey) => ({
openBottomLevelDrawer: () => DrawerActions.openDrawer({ key: stateKey }),
}),
}
);
const LeftDrawer = createDrawerNavigator(
{ RightDrawer },
{
contentComponent: Drawer1,
drawerWidth: SCREEN_WIDTH - 50,
edgeWidth: SCREEN_WIDTH * 0.5,
getCustomActionCreators: (route, stateKey) => ({
openTopLevelDrawer: () => DrawerActions.openDrawer({ key: stateKey }),
}),
}
);
const TabNavigator = createBottomTabNavigator({
Screen1: { screen: RightDrawer },
Screen2,
Screen3,
});
const Navigator = createAppContainer(TabNavigator);
您可以在expo上看到所有代码。 有人知道如何解决这个问题吗?
谢谢