Flutter / Dart-在PageView中编辑一页并查看更改而无需进行另一个MYSQL数据库查询?

问题描述

我正在使用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 (将#修改为@)