dart 如何在Flutter中更新Map in a List的值

wqlqzqxt  于 2023-09-28  发布在  Flutter
关注(0)|答案(2)|浏览(219)

我有这种类型的列表

  1. List<Map> data = [{1: false}, {2: false}, {5: false}, {6: false}]

我想只更新真/假值

  1. List<Map> afterUpdates= [{1: true}, {2: false}, {5: false}, {6: true}]
lg40wkob

lg40wkob1#

您可以通过以下简单的3个步骤来完成
1.查找要更新的元素
1.在数组中找到该元素的索引并更新它
1.使用找到的索引替换数组中的元素
下面是一个简单逻辑,您可以在dartpad上测试它

  1. void main() {
  2. List<Map<int, bool>> data = [{1: false}, {2: false}, {5: false}, {6: false}];
  3. updateKey(key,val){
  4. print("before");
  5. print(data);
  6. var element= data.firstWhere((k)=>k.keys.contains(key),orElse:()=>{});
  7. var index = data.indexOf(element);
  8. print("index");
  9. print(index);
  10. element.update(key,(v)=>val);
  11. data[index]=element;
  12. print("after");
  13. print(data);
  14. }
  15. updateKey(1,true);
  16. updateKey(6,true);
  17. }
展开查看全部
mfuanj7w

mfuanj7w2#

  1. data.update(index, (value) => true);

通过循环更改索引

相关问题