首页 > 解决方案 > (颤振)从第二页设置第一页的状态

问题描述

我在第一页中有一个 ListView Builder,它从第二页接收内容(项目)。当我在第二页点击提交按钮时,我使用:

Navigator.of(context).pop

这让我回到了第一个屏幕。

问题是除非我重新启动应用程序,否则它不会更新列表中创建的项目。

我尝试过: 1)调用 First Page 的实例并使用:

firstPageinstance.setState((){});

2)我还尝试从调用 setState 的 First Page 类中调用一个函数:

firstPageinstance.funtionWhichCallsetStateinFirstageClass();

但这些都不起作用。该列表仅在我重新启动应用程序时更新。

PS 列表项是从 SQLite 数据库保存和调用的。另外,如果您需要更多详细信息,请告诉我。

标签: dartflutter

解决方案


导航到您的 SecondPage 时,等待结果如下:

bool isUpdated = await Navigator.push(context, MaterialPageRoute(builder: (context) => SecondPage()),)

if(isUpdated) // do your list update logic here

返回 FirstPage(点击提交按钮)时,发送预期值,例如:

Navigator.pop(context, true);

有用的阅读: https ://flutter.dev/docs/cookbook/navigation/returning-data


推荐阅读