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

Flutter: переход после входа

Вопрос

После успешного входа нужно открыть главный экран так, чтобы кнопка «назад» не возвращала на экран входа. Что использовать?

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

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

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

Коротко

Правильный ответ: pushReplacement или pushAndRemoveUntil(route, (r) = false). pushReplacement заменяет верхний маршрут, pushAndRemoveUntil с предикатом false очищает весь стек.

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

  1. push главного экрана, а затем setState, чтобы экран входа исчез из стека
  2. pushReplacement или pushAndRemoveUntil(route, (r) => false)правильный ответ
  3. popUntil до экрана входа, а затем push главного экрана поверх него
  4. maybePop перед push: он закроет экран входа, только если тот уже не нужен

Разбор

pushReplacement заменяет верхний маршрут, pushAndRemoveUntil с предикатом false очищает весь стек. В обоих случаях экрана входа в стеке не остаётся. Обычный push оставит его под главным. popUntil наоборот возвращает назад. С go_router то же самое делает context.go('/home') или редирект.

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

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

Термины по теме