List addAll throw错误:未处理的异常:迭代期间的并发修改:
到底发生了什么 main.dart 在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
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我在结尾使用循环。