flutter:监听路由的变化
问题
当从路由B页面返回路由A页面后,A页面需要进行数据刷新。因此需要监听路由变化
解决
使用RouteObserver进行录音监听
创建全局变量,不在任何类中
final RouteObserver routeObserver = RouteObserver();
在main.dart中添加监听
Widget build(BuildContext context) { return MaterialApp( ... navigatorObservers: [routeObserver], ... ); }
订阅观察者
class _MyPageWidgetState extends State with RouteAware { @override void didChangeDependencies() { super.didChangeDependencies(); // 订阅路由变化 final ModalRoute? modalRoute = ModalRoute.of(context); if (modalRoute is PageRoute) { routeObserver.subscribe(this, modalRoute); } } @override void dispose() { routeObserver.unsubscribe(this); super.dispose(); } void didPopNext() { debugPrint('路由回来了'); } }
当从其他路由页面返回MyPageWidget页面时会触发didPopNext方法,可以在该方法里执行查询等操作
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。