You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中如何为已有的_filterOptions嵌套列表每一项添加isChecked属性

实现方案

你可以在将选项存入_filterOptions前,遍历每个选项并追加isChecked: false属性即可。注意从json.decode返回的Map默认是不可直接修改的内部哈希表类型,建议先通过Map.from转为可修改的普通Map再追加属性,避免运行时报错。

修改后完整代码

List<dynamic> _filters = [];
List<List<dynamic>> _filterOptions =[];
var filters =
    await json.decode(data)["getProductsByStore"]["aggregations"];
for(int i = 0; i < filters.length; i++){
  _filters.add(filters[i]["label"]);
  // 预处理当前分组下的所有选项
  List<dynamic> currentOptions = filters[i]["options"].map((option) {
    Map<String, dynamic> modifiableOption = Map.from(option);
    modifiableOption["isChecked"] = false;
    return modifiableOption;
  }).toList();
  _filterOptions.add(currentOptions);
}
// 输出即可得到带isChecked属性的嵌套结构
print(_filterOptions);

后续批量修改方案

如果你已经将原始数据存入了_filterOptions,需要后续统一追加属性,可以用嵌套遍历实现:

for (var group in _filterOptions) {
  for (var option in group) {
    final modifiableOpt = Map.from(option);
    modifiableOpt["isChecked"] = false;
    // 替换原元素
    group[group.indexOf(option)] = modifiableOpt;
  }
}

内容的提问来源于stack exchange,提问作者Pulsara Sandeepa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 22:12:04