Выбор ответа Middle Навигация спрашивают часто обновлено

React Navigation: поток авторизации

Вопрос

Как рекомендуется переключать экраны входа и основного приложения в React Navigation?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Условно рендерить разные наборы экранов по состоянию авторизации. При условном рендере навигатор сам переходит на доступный экран, а экраны входа отсутствуют в истории, поэтому «назад» на них не вернёт, и защищённые экраны недоступны без входа.

Варианты ответа

  1. После входа вызывать navigate('Main'), а при выходе navigate('Login')
  2. Держать два NavigationContainer и переключать их по состоянию входа
  3. Условно рендерить разные наборы экранов по состоянию авторизацииправильный ответ
  4. Скрывать экран входа стилем display: none, когда пользователь вошёл

Разбор

При условном рендере навигатор сам переходит на доступный экран, а экраны входа отсутствуют в истории, поэтому «назад» на них не вернёт, и защищённые экраны недоступны без входа. Ручной navigate оставляет историю и легко ломается при диплинках. Два контейнера теряют состояние и не рекомендуются. Скрытие стилем оставляет экраны в стеке.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.