flutter:监听路由的变化

07-02 1575阅读

问题

当从路由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方法,可以在该方法里执行查询等操作

flutter:监听路由的变化

VPS购买请点击我

文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。

目录[+]