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

Flutter实现用户多选列表筛选时结果长度为0如何解决?

问题根因
  • 你使用的是ChipsChoice<String>.multiple多选组件,onChanged回调返回的val参数是List<String>类型,存储了用户选中的所有日期选项
  • 现有代码直接用单条数据的i['status']字符串和列表val做相等判断,该逻辑永远不成立,因此筛选结果列表长度始终为0
修正方案

将筛选逻辑的判断条件改为判断单条数据的status是否属于选中的列表即可,修改后的onChanged代码如下:

onChanged: (val) {
  state.didChange(val);
  if (this.mounted) {
    setState(() {
      // 无选中项时默认返回全量数据,不需要该逻辑可删除判断直接走筛选
      if (val.isEmpty) {
        list = List.from(apps);
      } else {
        list = apps
            .where((i) => val.contains(i['status']))
            .toList();
      }
    });
  }
  print(list.length);
},

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.18 09:15:05