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
相关产品推荐
相关产品推荐

