问题描述
我正在使用MysqL数据库来获取PageView的JSON数据。我需要能够编辑一页,刷新PageView并在PageView中查看新编辑的页面。到目前为止,我一直使用Provider
来存储要编辑的页面的当前索引,
class AudioWidgetProvider with ChangeNotifier {
int refreshIndex;
setRefreshIndex (ri) {
refreshIndex = ri;
return refreshIndex;
}
}
在我的PageView.builder controller
中,我正在检查refreshIndex
中是否有一个Provider
数字。如果为null,则将其默认值设置为0作为初始滚动位置。否则,PageView滚动到Provider
中存储的数字。
controller: PreloadPageController(initialPage: audioWidgetProvider.refreshIndex?? 0),
导航到编辑页面时,我将使用Navigator.pushReplacement
处理PageView;
onpressed: () async {
audioWidgetProvider.setRefreshIndex(currentIndex);
Navigator.pushReplacement(context,new MaterialPageRoute(
builder: (BuildContext context) => EditPage()),);
}
然后,在使用新编辑的页面信息更新MysqL数据库之后,我最终导航回到刷新的PageView,该页面现在滚动到新编辑的页面;
Navigator.pushReplacement(context,MaterialPageRoute(builder: (context) =>HomePage()));
但是,如果我在编辑页面时随时更新MysqL数据库并添加了新项,则refreshIndex
号将不同步。因此很明显,当我的应用上线时,我当前的方法将无法正常工作。
有没有一种方法可以像这样将MYSQL查询存储在SQFLITE
数据库中,编辑单个页面条目,然后用外部MYSQL查询重新加载内部查询,而不是重新加载PageView页面?
我还没想过将BLOC或Redux与PageView结合使用,并希望有一个更简单的解决方案。有人可以指引我正确的方向吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)