@Wynell_ru

Как обработать возврат на предыдущую страницу во Flutter?

Как обработать возврат на предыдущую страницу во Flutter?
То есть, я использовал Navigator.push, и как выполнить определенные действия именно в тот момент, когда пользователь закроет эту вторую страницу / вернется назад?
  • Вопрос задан
  • 1083 просмотра
Пригласить эксперта
Ответы на вопрос 2
@KnightForce
async () {
    await Navigator.push() // Предыдущий экран будет ждать результат роута
}


Можно из экрана что-то вернуть:

async () {
  final int result =  await Navigator.push() // Предыдущий экран будет ждать результат роута
  
  // Где-то на другом экране:
 
  navigator.pop(1);

}
Ответ написан
Комментировать
Razbezhkin
@Razbezhkin
программист, преподаватель
Вот как я решил такую задачу для сценария, когда пользователь нажимает стрелку "назад" на самом устройстве, чтобы определенная страница смогла отловить тот самый момент когда страница извлекается из истории и показывается пользователю.

Я добавил миксин "RouteAware" в тот класс, который является страницей, и перегрузил метод didPopNext.
вот пример.

//страница
class CartPage extends StatefulWidget {
  @override
  _CartPageState createState() {
    return _CartPageState();
  }
}

//состояние страницы
class _CartPageState extends State<CartPage> with RouteAware {
    //вызывается, когда на эту страницу происходит возврат.
  @override
  void didPopNext() {
    _loadCart();
  }
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы