Stacknavigator внутри drawernavigator: сохранить предыдущий маршрут и предотвратить возврат к начальному экрану

Я создал для этого закуску: https://snack.expo.io/HJebCIoiM

Проблема действительно проста, но большинство проблем, которые я обнаружил в GH и SO, связаны с противоположным поведением: сброс StackNavigator на исходный маршрут при переключении между элементами в DrawerNavigator.

Структура приложения

  • Выдвижной ящик
    • Маршрутизатор
      • Первый экран
      • Второй экран
    • Другой экран

Начальный маршрут - Маршрутизатор, который по умолчанию показывает первый экран.

Текущее поведение

  1. Я перехожу с первого экрана на второй
  2. Я переключаю ящик
  3. Я перехожу к другому экрану в ящике
  4. Я возвращаюсь к роутеру
  5. Показывает первый экран

Ожидаемое поведение:

На шаге 5. он должен показать второй экран, потому что это последний маршрут, по которому я шел, когда переключал DrawerNavigator.

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

Еще больше меня смущает то, что многие люди сообщают, что это поведение их приложения по умолчанию, но они делать хотят сбросить стек и борются с этим:

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

Закуска показывает мне ожидаемое поведение, когда я использую программную клавишу!

Rajendran Nadar 11.04.2018 13:34

Привет, @RaajNadar, можешь дать мне знать, что ты имеешь в виду под программной клавишей? Спасибо!

Marcel Kalveram 11.04.2018 17:27

3 кнопки внизу назад, меню и домой

Rajendran Nadar 11.04.2018 17:27

Ой, извините @RaajNadar, я не знал, что вы тестируете Android. Я еще не проверял на Android. Похоже, это проблема, связанная с iOS. Я добавлю это к описанию.

Marcel Kalveram 11.04.2018 18:35

@RaajNadar Я только что тестировал на Android, но поведение такое же, как и на iOS. После переключения между «Маршрутизатором» и «Другим экраном» он возвращается к «Первому экрану» в маршрутизаторе.

Marcel Kalveram 14.04.2018 17:22
1
5
336
0

Другие вопросы по теме