【发布时间】:2022-10-31 16:26:10
【问题描述】:
我有一个 todoDate (Map<String, List> 变量),我添加了一个键,但有时该键已经存在,因此没有任何内容添加到 Map 数据类型我想将值添加到现有键但不起作用。
我有 2 个文本字段(每个都有一个控制器)和一个按钮:按钮的 onPressed 中的 addKey() 功能。 void addKey() { for (var key in todoDate.keys) { final containsKey = todoDate.containsKey(key); if (containsKey) { todoDate.update(key, (value) => todoDate[key] = value); } else { // 如果 key 不存在,创建新的 key 和 value setState(() { todoDate[dateController.text.toTitleCase()] = [ taskController.text.toTitleCase() ]; }); } }}但是它不起作用,我认为我写的更新方法是错误的,那么我该怎么做呢?
我有 2 个文本字段(每个都有一个控制器)和一个按钮:按钮的 onPressed 中的 addKey() 功能。 void addKey() { for (var key in todoDate.keys) { final containsKey = todoDate.containsKey(key); if (containsKey) { todoDate.update(key, (value) => todoDate[key] = value); } else { // 如果 key 不存在,创建新的 key 和 value setState(() { todoDate[dateController.text.toTitleCase()] = [ taskController.text.toTitleCase() ]; }); } }}但是它不起作用,我认为我写的更新方法是错误的,那么我该怎么做呢?
【问题讨论】:
-
在
else条件下您使用setState,所以我假设您的变量不会在 UI 上更新。所以你也必须在if条件下setState。那么您的 UI 将更新为新值