dart - (颤振)从第二页设置第一页的状态
问题描述
我在第一页中有一个 ListView Builder,它从第二页接收内容(项目)。当我在第二页点击提交按钮时,我使用:
Navigator.of(context).pop
这让我回到了第一个屏幕。
问题是除非我重新启动应用程序,否则它不会更新列表中创建的项目。
我尝试过: 1)调用 First Page 的实例并使用:
firstPageinstance.setState((){});
2)我还尝试从调用 setState 的 First Page 类中调用一个函数:
firstPageinstance.funtionWhichCallsetStateinFirstageClass();
但这些都不起作用。该列表仅在我重新启动应用程序时更新。
PS 列表项是从 SQLite 数据库保存和调用的。另外,如果您需要更多详细信息,请告诉我。
解决方案
导航到您的 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
推荐阅读
- javascript - 如何使用表单提交将数据提取到 jquery dataTable
- react-native - “react-native-get-music-files”中的 musicCursor 出现问题
- javascript - 如何在不显示迷你 Chrome 徽标的情况下将 PWA 添加到主屏幕?
- ios - 如何在 Swift4 中使用 delete(_:) 从界面中删除选定的内容?
- ubuntu - 将本地 gitlab 服务器设置为具有自签名证书的 ssl
- python - 在给出名称错误的类中定义一个类之外的 var
- groovy - 如何在“groovy”中编写一个包含多行且没有标题的 .csv 文件(预计避免附加)?
- python-3.x - 十进制到二进制张量转换
- ios - 在 API 中创建 if 条件时如何解决在 swift 代码中调用情节提要的速度?
- r - 如何绘制经过训练的 rpart 决策树模型的变量重要性?