Dart/Flutter中如何更简便地向Map添加条目?
更简便的Map条目添加方式
你完全没必要用addEntries这么绕的写法,Flutter里的Map有更直接的赋值方式:
直接用下标赋值就能搞定,这才是类似你期望的.push/.add那种简便用法:
onSaved: (newValue) { formValues['email'] = newValue; },
关于你疑惑的.entries语法
{'email': newValue}是一个临时Map,.entries会把这个Map转换成Iterable<MapEntry>类型的条目集合,而addEntries方法的作用是把另一个Map的所有条目批量添加到当前Map里——你现在只加单个键值对,用这个方法纯属大材小用,多做了两步没必要的转换。
其他可选写法
如果想避免覆盖已存在的键值对,可以用putIfAbsent,只有当键不存在时才添加:
onSaved: (newValue) { formValues.putIfAbsent('email', () => newValue); },
但如果只是正常保存/更新表单字段值,下标赋值是最直接简便的选择。
内容的提问来源于stack exchange,提问作者Tertius Scheepers
相关产品推荐
相关产品推荐

