#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.