Реакции-навигация V3: openDrawer() отправляет избыточное действие, но ящик не открывается, а жест слайдера переходит обратно, когда его отпускают
Проблема
У меня есть простая настройка реагирующей навигации с 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.
Я не уверен, является ли это ошибкой реагирующей навигации или что-то не так в моей реализации. Любая помощь будет оценена.