Проблема
У меня есть простая настройка реагирования-навигации с reduxAppNavigator для отслеживания маршрутов.Он состоит из 3 экранов стека и ящика с 2 экранами.Навигация между экранами не является проблемой.Но при попытке открыть ящик я получаю следующее поведение:
- Ящик не отвечает на
toggleDrawer
или openDrawer
, даже если действия отправляются (Navigtation/OPEN_DRAWER
& Navigtation/TOGGLE_DRAWER
) в хранилище редуксов (см. видео ниже) - Жест слайда показывает ящик, но он отскакивает назад, когда я отпускаю, и отправляет тип действия:
Navigtation/MARK_DRAWER_SETTLING
Реализация
Вот мои маршруты:
import { splashRouteMap } from '@main/splash';
import { loginRouteMap } from '@modules/login';
import { onboardingRouteMap } from '@modules/onboarding';
import { homeRouteMap } from '@main/home';
import { transactionsRouteMap } from '@modules/transactions';
import { createSwitchNavigator, createDrawerNavigator } from 'react-navigation';
const DrawerNav = createDrawerNavigator(
{
...transactionsRouteMap,
...homeRouteMap,
},
{
initialRouteName: 'Transactions',
drawerLockMode: 'unlocked',
},
);
export const AppNavigator = createSwitchNavigator(
{
...splashRouteMap,
...onboardingRouteMap,
...loginRouteMap,
DrawerNav,
},
{
initialRouteName: 'Splash',
},
);
Моя кнопка гамбургера выглядит так:
<Button
transparent
onPress={() => {
this.props.navigation.openDrawer();
}}
>
<Icon name="menu" />
</Button>;
Вот короткое видео эмулятора с React Native Debugger, показывающее, что действия выполняются, но это не влияет на экран.
https://www.screencast.com/t/vmHLM91362
Мое окружение
реакция-навигация: 3.0.9 реакция-нативная: 0.57.8
Проблема возникает на Android и IOS.
Я не уверен, что это ошибка реагирования-навигацииили что-то не так в моей реализации.Любая помощь будет оценена.