Я обнаружил ошибку с createDrawerNavigator , вложенным в createBottomTabNavigator .Я настроил выставочный проект, чтобы вы могли проверить его самостоятельно: https://snack.expo.io/Hy299PSRN. Ошибка может быть описана следующим образом:
Когда вы используете встроенные жесты, чтобы открывать и закрывать ящик, проводя пальцем влевои прямо на экране, особенно если вы не открываете его полностью, а затем переключаетесь на другую вкладку, экран 2 или 3 в моем примере, приложение немедленно переключается обратно на экран ящика.В моем случае я использовал 2 выдвижных ящика на одном экране, но это также можно повторить только на выдвижном ящике.Вот настройки навигации:
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);
Вы можете увидеть весь код на выставке.Кто-нибудь знает, как решить эту проблему?
Спасибо