Как обработать или предотвратить аппаратное нажатие кнопки назад на реакцию родного модала? - PullRequest
0 голосов
/ 22 октября 2018

Использование реагировать нативно для Android-приложения.Использование собственного компонента, основанного на реакции собственного модального режима, для представления содержимого над вложенным представлением.

Уже пытался отреагировать на собственный обработчик задним числом

   componentDidMount() {
    BackHandler.addEventListener('hardwareBackPress', this.handleBackPress);
  }

  componentWillUnmount() {
    BackHandler.removeEventListener('hardwareBackPress', this.handleBackPress);
  }

  handleBackPress = () => {
    this.goBack(); // works best when the goBack is async
    return true;
  }

или подобное

componentDidMount() {
    this.backHandler = BackHandler.addEventListener('hardwareBackPress', () => {
      this.goBack(); // works best when the goBack is async
      return true;
    });
  }

  componentWillUnmount() {
    this.backHandler.remove();
  }

здесьоткрыт выпуск

1 Ответ

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

К сожалению, это не сработает.Если вы проверите документацию , вы увидите, что вам нужно использовать onRequestClose на модале.BackHandler "... события не будут генерироваться, пока модал открыт" .

Примерно так будет работать:

      <Modal
        visible={visible}
        onRequestClose={() => {
          console.log("back");
        }}
      >
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...