Как узнать, когда мы возвращаемся к одному из них с помощью функции навигации?

#flutter #dart

#флаттер #dart

Вопрос:

Привет, я перехожу со страницы 1 на страницу 2 в flutter.my вопрос в том, когда я перешел со страницы 1 на страницу 2, используя:

 Navigator.push()
 

Теперь я хочу вернуться со страницы 2 на страницу один я хочу знать, как я могу узнать со страницы 1, что я возвращаюсь со страницы 2
Использование:

 Navigator.pop()
 

Просто я хочу обновить страницу 1, когда я вернусь со страницы на, но я не знаю, как узнать, что я перешел со страницы 2.

У меня есть блок, который переходит на страницу 1, и я хочу вызвать событие, когда я возвращаюсь со страницы 2, не передавая блок страницы 1 на страницу 2.

Ответ №1:

Метод Navigator.pop() принимает необязательный второй аргумент с именем result . В документации есть пример https://flutter.dev/docs/cookbook/navigation/returning-data для возврата данных со второго экрана на первый экран. Это может быть адаптировано для запуска действия с результатом pop. Что-то вроде, на первом экране:

 fun(BuildContext context) async {
    final result = await Navigator.push(context,ROUTE);
    if (result == 'Returned') {
        do something...
    }
}
 

и на втором экране:

 Navigator.pop(context, 'Returned');
 

Ответ №2:

Попробуйте это на своей странице 1

 Navigator.of(context).push(MaterialPageRoute(builder: (context) => Page2(),)).whenComplete(() {
   // Navigation pushed back
   // Do what you want here
});
 

Комментарии:

1. Но он хочет открыть контекст!

2. ОП сказал Simply i wanna update page 1 when i pop back from page to but i dont know how to get to know that i navigated from page 2.