Выбор ответа Junior Навигация спрашивают часто обновлено
Flutter: вернуть результат с экрана
Вопрос
Как вернуть значение с экрана редактирования на предыдущий экран через Navigator?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: await push(...) получит значение из Navigator.pop(context, value). final result = await Navigator.of(context).push<bool(route); а на открытом экране Navigator.pop(context, true).
Варианты ответа
await push(...)получит значение изNavigator.pop(context, value)правильный ответ- Записать значение в глобальную переменную и прочитать её в
didChangeDependencies - Передать колбэк вторым аргументом в
pop, он вызовется на предыдущем экране - Через свойство
Navigator.result, которое хранит значение последнего закрытого экрана
Разбор
final result = await Navigator.of(context).push<bool>(route); а на открытом экране Navigator.pop(context, true). Если экран закрыли жестом или кнопкой «назад», придёт null, это нужно учесть. Глобальные переменные хрупкие, а Navigator.result и колбэка в pop не существует.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.