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

Flutter: вернуть результат с экрана

Вопрос

Как вернуть значение с экрана редактирования на предыдущий экран через Navigator?

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

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

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

Коротко

Правильный ответ: await push(...) получит значение из Navigator.pop(context, value). final result = await Navigator.of(context).push<bool(route); а на открытом экране Navigator.pop(context, true).

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

  1. await push(...) получит значение из Navigator.pop(context, value)правильный ответ
  2. Записать значение в глобальную переменную и прочитать её в didChangeDependencies
  3. Передать колбэк вторым аргументом в pop, он вызовется на предыдущем экране
  4. Через свойство Navigator.result, которое хранит значение последнего закрытого экрана

Разбор

final result = await Navigator.of(context).push<bool>(route); а на открытом экране Navigator.pop(context, true). Если экран закрыли жестом или кнопкой «назад», придёт null, это нужно учесть. Глобальные переменные хрупкие, а Navigator.result и колбэка в pop не существует.

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

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

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