List addAll throw错误:未处理的异常:迭代期间的并发修改:

List addAll throw错误:未处理的异常:迭代期间的并发修改:,list,listview,flutter,dart,List,Listview,Flutter,Dart,到底发生了什么 main.dart 在initState中,我们调用服务器从数据库获取图像,然后将其添加到接收器中 var capturedImagesList = List<dynamic>(); @override void initState() { super.initState(); _bloc.getImages(); // }); } error指向这一行 capturedIma

到底发生了什么

main.dart

initState
中,我们调用服务器从数据库获取图像,然后将其添加到接收器中

var capturedImagesList = List<dynamic>();

    @override
      void initState() {
        super.initState();  
         _bloc.getImages(); // 
        });
      }
error指向这一行

capturedImagesList.addAll(_bloc.urlImageStream.value);
capturedImagesList.addAll(_bloc.urlImageStream.value);

为什么它第一次工作,但第二次失败?

您是否签出此线程:

我引述这篇文章:

此错误表示您正在迭代期间从集合中添加或删除对象。这是不允许的,因为添加或删除项将更改集合大小并打乱后续迭代

所以我看不到所有的代码,但可能是当您通过“添加”按钮添加图片时,您清除了列表或删除了当前项目吗?

您可以这样做

_bloc.urlImageSink.add([images])
图像将立即反映在UI中

我认为问题出在这方面

capturedImagesList.addAll(_bloc.urlImageStream.value);
capturedImagesList.addAll(_bloc.urlImageStream.value);

这看起来很奇怪,您无法将流复制到数组中,它无法工作。

您找到解决方案了吗?@rajithShettyyes@JohnJoe解决方案是什么?@AjayGautam我在结尾使用循环。