Выбор ответа Middle Навигация спрашивают часто обновлено
React Navigation: поток авторизации
Вопрос
Как рекомендуется переключать экраны входа и основного приложения в React Navigation?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Условно рендерить разные наборы экранов по состоянию авторизации. При условном рендере навигатор сам переходит на доступный экран, а экраны входа отсутствуют в истории, поэтому «назад» на них не вернёт, и защищённые экраны недоступны без входа.
Варианты ответа
- После входа вызывать
navigate('Main'), а при выходеnavigate('Login') - Держать два
NavigationContainerи переключать их по состоянию входа - Условно рендерить разные наборы экранов по состоянию авторизацииправильный ответ
- Скрывать экран входа стилем
display: none, когда пользователь вошёл
Разбор
При условном рендере навигатор сам переходит на доступный экран, а экраны входа отсутствуют в истории, поэтому «назад» на них не вернёт, и защищённые экраны недоступны без входа. Ручной navigate оставляет историю и легко ломается при диплинках. Два контейнера теряют состояние и не рекомендуются. Скрытие стилем оставляет экраны в стеке.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.