首页 > 解决方案 > 路由弹出/推送后未调用构建方法

问题描述

根据这个答案,构建方法被称为 Route pop/push

我的问题是,在我的应用程序中有一个页面,构建方法只被调用一次,那是页面第一次构建的时候,但在我的其他页面中,一切都很好,构建方法被调用多次,例如当从另一个页面或推送到新页面。

我的代码是这样的:

class ProjectDetailsPage extends StatefulWidget {
  final int Id;

  const ProjectDetailsPage({Key key, this.Id}) : super(key: key);

  @override
  _ProjectDetailsPageState createState() => _ProjectDetailsPageState();
}

class _ProjectDetailsPageState extends State<ProjectDetailsPage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      Drawer: SlideDrawer(),
      appBar: LeadingAppBar(),
      body: FutureBuilder(
         future: _getProject(),
         builder: (context, snapshot) {
         ....
         }
      )
  );
}

所以我希望我的页面在推送/弹出发生时重建

标签: androidflutter

解决方案


为您的状态使用RouteAware mixin 并实现didPushdidPopNext方法。


推荐阅读