React Native BackHandler с реакцией реагирования - PullRequest
0 голосов
/ 07 ноября 2018

Я делаю приложение с RN и использую реагирующую навигацию, я застрял с BackHandler и не знаю, как с этим справиться. У меня есть нормальная структура следующим образом - 1. Заставка 2. Экран входа 3. Главный экран с меню ящика 4. Экран уведомлений Поток splash будет загружен и проверит, вошел ли пользователь в систему или нет, если он есть, то первым будет домашний экран, иначе будет вход в систему.

Если я нажимаю кнопку «Назад» из меню «Вход в систему», она должна выйти из приложения, как и на главном экране, а если я вернусь из экрана уведомлений, она должна перейти к главному экрану.

Я попробовал следующий метод для достижения этой цели, но не смог сделать это - 1. Обработали BackHandler во всех компонентах и ​​написали выход из дома и войдите в систему с Alert с просьбой действительно хотеть выходить или нет, но когда я перехожу на экран уведомлений и нажимаю кнопку возврата устройства, метод возврата на домашнем экране переопределяется и не работает так, как я хочу. 2. Добавил BackHandler в корневой компонент и сделал все, основываясь на текущем параметре маршрута, использовал избыточность с реакцией навигации, но это также не помогло мне.

Пожалуйста, помогите мне, каков наилучший способ добиться того, чего я хочу, я действительно застрял

1 Ответ

0 голосов
/ 07 ноября 2018

Вы должны создать 2 стековых навигатора следующим образом:

  1. AuthNavigator: Логин
  2. MainNavigator: Главная страница -> Уведомление

При открытии Splash Screen вы будете проверять, вошел пользователь или нет:

  • Если нет, откройте AuthNavigator: this.props.navigation.dispatch(AuthNavigator); После успешного входа в систему вам нужно сбросить обратно стек и перейти к MainNavigator
  • Если да, откройте MainNavigator: this.props.navigation.dispatch(MainNavigator);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...