Flutter 如何在FutureBuilder中刷新快照
如何刷新FutureBuilder的快照?我有一个选项卡控制器,其中一个选项卡上有一个可解雇的FutureBuilder。我通过以下方式实施了ondismissed事件:Flutter 如何在FutureBuilder中刷新快照,flutter,Flutter,如何刷新FutureBuilder的快照?我有一个选项卡控制器,其中一个选项卡上有一个可解雇的FutureBuilder。我通过以下方式实施了ondismissed事件: onDismissed: (direction) async { setState(() async { await MyContent().delete(snapshot.data[index]); myContents = getMyContents(myContent.id); }); }, 我
onDismissed: (direction) async {
setState(() async {
await MyContent().delete(snapshot.data[index]);
myContents = getMyContents(myContent.id);
});
},
我测试了流程,删除工作正常,myContents列表返回正确数量的元素,元素确实从列表中消失,但是当我导航到另一个选项卡并返回时,删除的元素再次出现。只需关闭页面并重新打开,即可显示正确的元素
问题在于未刷新的快照:
FutureBuilder<List<MyContent>>(
future: myContents,
builder: (context, snapshot) {
if (snapshot.hasData) {
return new ListView.builder(
FutureBuilder(
未来:myContents,
生成器:(上下文,快照){
if(snapshot.hasData){
返回新的ListView.builder(
如何解决此问题?在setState中调用await是最糟糕的事情;这绝对是不好的。请检查此处:。将await放在外部使用此方法的主要问题是,在滑动dismissable元素后,它会闪烁几秒钟。
onDismissed:(direction)async{await MyContent()。删除(snapshot.data[index]);setState((){myContents=getMyContents(myContent.id);});},