Навигация с использованием response-navigation v2 - PullRequest
0 голосов
/ 13 мая 2018

Давайте сделаем это просто.

У меня 3 экрана. Splash, Home и Settings. Я использую ReactNavigation-v2 StackNavigator для навигации между экранами. Ход программы следующий: Splash -> Home -> Settings. Все отлично работает, кроме одного. Когда я нажимаю кнопку возврата из дома, я получаю экран Splash из стека.

Итак, вопрос в том, как мне удалить экран Splash из стека навигатора и предотвратить возврат к Home -> Splash.

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

Если вам нужно больше деталей, спросите меня в комментариях.

ПРИМЕЧАНИЕ. Я новичок в реактивном родстве.

1 Ответ

0 голосов
/ 13 мая 2018

Вы можете пойти с 2 вариантами.

Первый вариант - сбросить навигацию * стек 1004 * при переходе от SplashScreen к главному экрану.

Действие Reset стирает все состояние навигации и заменяет его на результат нескольких действий.

Sample

import { StackActions, NavigationActions } from 'react-navigation';

const resetAction = StackActions.reset({
  index: 0,
  actions: [NavigationActions.navigate({ routeName: 'Profile' })],
});
this.props.navigation.dispatch(resetAction);

Второй вариант - использовать SwitchNavigator в сочетании с StackNavigator.

Цель SwitchNavigator - показать только один экран на время. По умолчанию он не обрабатывает обратные действия и сбрасывает маршруты в состояние по умолчанию при переключении. Это точное поведение, которое мы хотим от потока аутентификации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...