【发布时间】:2020-03-14 18:03:24
【问题描述】:
如何刷新 ListView ?
假设在 A 页中,我有一个 ListView,并且行项目中有一个菜单图标。
当我单击菜单图标时,它将显示一个底部工作表对话框,其中包含一个删除图标。
单击删除图标时,将弹出删除确认对话框。
单击确认对话框中的“是”按钮后,它将删除该项目。一旦收到“成功”状态,它将刷新ListView。
这是底部工作表删除图标的代码
onTap: () {
Navigator.pop(context);
var result = PopUpDialog().showDeleteDialog(); // pop up confirmation dialog
if (result == 'Success') {
print('success');
setState(() {
data.removeAt(index);
});
} else {
print('fjeodpedp');
}
},
这是确认对话框中Yes 按钮的代码。
PopUpDialog-showDeleteDialog
onPressed: () async {
Navigator.pop(buildContext); // dismiss confirmation dialog
var result = await _bloc.delete();
return result;
},
集团类
Future delete() async {
Response delete = await _repo.delete(); // delete data in server
var deleteResponse = Response.fromJson(delete.body);
return deleteResponse.status; // return Success
}
我希望 setState 仅在 deleteResponse.status 等于 success 时才被调用,但一旦确认,它会继续打印 fjeodpedp弹出对话框。我添加了 async-await,但仍然无法正常工作。
正确的方法是什么?
感谢您宝贵的时间。
【问题讨论】:
标签: listview flutter dart async-await