如何在Flutter中修改标测图列表中的项目|飞镖

rryofs0p  于 2022-11-30  发布在  Flutter
关注(0)|答案(2)|浏览(100)

我有一个Map项目列表。从这个我想修改一个项目的关键值使用它的id。下面是Map列表。

List items = [{'id':'01','name':'Rahul'},{'id':'02','name':'John'},{'id':'03','name':'Marry'}];

当我按下一个按钮时,我想根据ID更新该项目的名称。
例如,

void editName(String id,String name){
  //Here i want to edit the name based on that id
}

如果我通过editName('02','Rose'),我想要结果

[{'id':'01','name':'Rahul'},{'id':'02','name':'Rose'},{'id':'03','name':'Marry'}];
bvpmtnay

bvpmtnay1#

void main() {
  List<Map<String, String>> items = [
    {'id': '01', 'name': 'Rahul'},
    {'id': '02', 'name': 'John'},
    {'id': '03', 'name': 'Marry'}
  ];

  void editName(String id, String name) {
    for (var item in items) {
      if (id == item['id']) {
        item['name'] = name;
      }
    }
  }

  editName('02', 'Rose');
  print('items: $items');
}
nx7onnlm

nx7onnlm2#

我找到了解决方案:)

void main() {
List items = [{'id':'01','name':'Rahul'},{'id':'02','name':'John'},{'id':'03','name':'Marry'}];
var result = items.firstWhere((element) => element['id'] == '02');
print(result);
var index = items.indexWhere((element) => element['id'] == '02');
print(index);
result['name'] = 'Rose';
print(result);
items.removeAt(index);
items.insert(index, result);
print(items);
}

相关问题