如何在从数组颤振火库中删除项目后显示列表中的更改



我有一个列表视图构建器,它接受一个名为allcomments的列表字符串,并用它构建一个列表。getSpecificComments Widget接收评论并检查它是否是我想要的评论,然后将评论作为文本显示在页面上。当我点击onTap时,我想删除页面上出现的一条评论。我可以正确地从注释数组中删除它。

ListView.builder(
padding: const EdgeInsets.all(8),
itemCount: allcomments.length,
itemBuilder: (BuildContext context, int index) {
return ListTile(
title: Column(
children: [getSpecificComments(allcomments[index])],
),
onTap: () async {
showDialog(
context: context,
builder: (context) => AlertDialog(
title: Text("Delete Event?"),
actions: [
TextButton(
child: Text("Cancel"),
onPressed: () => Navigator.pop(context),
),
TextButton(
child: Text("Ok"),
onPressed: () async {
await FirebaseFirestore.instance.runTransaction((Transaction myTransaction) async {
await  FirebaseFirestore.instance.collection('commentSections').doc('1T6k4dMAmECZXDzOsO44').update({'comments': FieldValue.arrayRemove([allcomments[index]])}).whenComplete((){
Navigator.pop(context);
});
Navigator.pop(context);
});

},
),
],
),
);


}

);
}
),

我面临的问题是,我只能看到数组项删除后,我刷新页面。我希望当我删除它的时候,我可以看到数组的自动更新,而不必刷新。有人能帮帮我吗?

您可以用StreamBuilder()包装ListView.builder(),并使用它在注释中列出。

通过这种方式,如果从流中获取的数据发生任何变化,allcomments的列表将会改变。

相关内容

最新更新