目前我有一个这样的地图,可以通过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)]