Навигация закрыть ящик не работает реагировать навигация - PullRequest
2 голосов
/ 09 апреля 2019

Мы используем React Navigation для нашего приложения React Native и показываем боковую панель. Все работает нормально, но закрыть ящик не работает.

На самом деле, я должен закрыть ящик, когда пользователь нажимает кнопку возврата на устройстве Android.

Итак, что я вызываю navigation.closeDrawer(); внутри метода обработчика кнопки возврата.

backButtonTap = () => {
    const { navigation } = this.props;
    navigation.closeDrawer();
    DeviceEventEmitter.emit('NavigatedToNewRoute', {
      route: 'screen1'
    });
    navigation.navigate('screen1');
  }

Но, пока мы пытались закрыть устройство, задняя сторона кнопки не закрывалась. OpenDrawer метод работает нормально.

И у меня есть количество экранов на боковой панели. Итак, в каждом классе мне нужно вызывать этот метод closeDrawer или любой другой глобальный класс, мы можем вызвать его? Мне просто нужно закрыть, если ящик откроется, и если пользователь нажмет на кнопку устройства назад, я должен закрыть этот ящик.

Есть предложения?

Ответы [ 2 ]

0 голосов
/ 09 апреля 2019

Я думаю, что у реагирующей навигации есть функция по умолчанию для закрытия ящика.и если он не работает, попробуйте также передать функцию навигации в функцию, чтобы он мог легко справиться с этим.

this.props.navigationProps.toggleDrawer();
0 голосов
/ 09 апреля 2019

Можете ли вы попробовать следующее?

import { DrawerActions } from "react-navigation";
...
backButtonTap = () => {
    const { navigation } = this.props;
    //navigation.closeDrawer();
    this.props.navigation.dispatch(DrawerActions.closeDrawer());
    DeviceEventEmitter.emit('NavigatedToNewRoute', {
      route: 'screen1'
    });
    navigation.navigate('screen1');
  }
...