Flutter 如何更新/添加地图中的键的值<K,V>



目前我有一个这样的地图,可以通过API发送电子邮件:

Map body = {"personalizations": [
{
"to": [
{
"email": "$receiverEmail"
}
],
"dynamic_template_data": {
"EmployeeName": "$employeeName",
"EmployeeID": "$employeeID",
"PatientName": "$patientName",
"ProviderName": "$providerName",
"TreatmentDate": "$treatmentDate",
"Diagnosis": "$diagnosis"
}
}
],
"from": {
"email": "$userEmail"
},
"template_id": "$templateID"
};

我计划将此结构用于两种形式的电子邮件,为此,我需要更新/添加dynamic_template_data键下的值。

因此,我正试图找出如何更新/增加该特定密钥的值。我发现了一个名为Map.update((的函数,但我不确定如何正确使用它。我该如何解决这个问题?

只需为要更新的特定键指定一个新值。

body['personalizations'][0]['dynamic_template_data']['EmployeeName'] = 'John Doe';

body['personalizations'][0]['dynamic_template_data']['Salary'] = 5000.00;

另一个例子是,只在还不存在的情况下进行分配

(body['personalizations'][0] as Map).putIfAbsent('Salary', () => 5000.00);

Map.update()Map.updateAll()是为此预定义的函数。

Map<String, bool> filterMap = {
'All': true,
'Open': false,
'Inprocess': false,
'Resolved': false,
'Closed': false,
};

只需使用此选项将所有值对设置为false:-filterMap.updateAll((key, value) => value = false);

输出:

[MapEntry(All: false), MapEntry(Open: false), MapEntry(Inprocess: false), MapEntry(Resolved: false), MapEntry(Closed: false)]

如果您想更改单个值:-

filterMap.update(filterMap.keys.toList()[index]),(value) => value = true);

(filterMap.keys.toList()[index](->这是密钥名称。我在列表中使用过它。所以,为了找到用户点击的元素,我使用了这个。你可以在那里给出一个密钥名称。

filterMap.update('Open'),(value) => value = true);

输出:

[MapEntry(All: false), MapEntry(Open: true), MapEntry(Inprocess: false), MapEntry(Resolved: false), MapEntry(Closed: false)]

最新更新