问题
当从路由B页面返回路由A页面后,A页面需要进行数据刷新。因此需要监听路由变化
解决
使用RouteObserver
进行录音监听
创建全局变量,不在任何类中
final RouteObserver<PageRoute> routeObserver = RouteObserver<PageRoute>();
在main.dart中添加监听
Widget build(BuildContext context) {return MaterialApp(...navigatorObservers: <NavigatorObserver>[routeObserver],...);
}
订阅观察者
class _MyPageWidgetState extends State<MyPageWidget> with RouteAware {void didChangeDependencies() {super.didChangeDependencies();// 订阅路由变化final ModalRoute? modalRoute = ModalRoute.of(context);if (modalRoute is PageRoute) {routeObserver.subscribe(this, modalRoute);}}void dispose() {routeObserver.unsubscribe(this);super.dispose();}void didPopNext() {debugPrint('路由回来了');}
}
当从其他路由页面返回MyPageWidget
页面时会触发didPopNext
方法,可以在该方法里执行查询等操作