flutter - 如何在颤动中过滤列表?
问题描述
我正在尝试将过滤器添加到我的list
这就是我所做的
productTemp.sort((a, b) => b.productPrice.compareTo(a.productPrice));
productTemp = productTemp.where((x) =>
x.productName.toLowerCase().contains(inputText.toLowerCase()));
productTemp = productTemp.toSet().toList();
这是我如何设置的
List<ProductsModel> productTemp = [];
那么这个
class ProductsModel {
final String productId;
final String productName;
final String isNew;
final String isHot;
final String productImage;
final String categoryId;
final String productPrice;
final String productDescription;
ProductsModel(
{this.productId,
this.productName,
this.isNew,
this.isHot,
this.productImage,
this.categoryId,
this.productPrice,
this.productDescription});
factory ProductsModel.fromJson(Map<String, dynamic> json) {
return ProductsModel(
productId: json['productId'] as String,
productName: json['productName'] as String,
isNew: json['isNew'] as String,
isHot: json['isHot'] as String,
productImage: json['productImage'] as String,
categoryId: json['categoryId'] as String,
productPrice: json['productPrice'] as String,
productDescription: json['productDescription'] as String,
);
}
bool operator ==(o) =>
o is ProductsModel && productId == o.productId;
int get hashCode => productId.hashCode;
}
所以我得到这个错误
[错误:flutter/lib/ui/ui_dart_state.cc(148)] 未处理的异常:类型“WhereIterable”不是“列表”类型的子类型
我该如何解决?提前致谢
解决方案
你productTemp
是类型List
但where
返回Iterable
。您需要将 的输出where
转换为List
.
productTemp.where(
(x) => x.productName.toLowerCase().contains(inputText.toLowerCase())
).toList();
推荐阅读
- python - 均衡分散 3D 分布的高度(Python)
- apache-spark - 如何确定 Apache Spark 数据帧中的分区大小
- javascript - 获取一个数组,删除对象的一些值
- javascript - 如何将 MySQL 表数据填充到 React 卡片组件中
- vue.js - 如何在 vuejs 中转换组件页面?
- xamarin.android - Uno 平台中的二维码扫描器
- c++ - 为 Contdown 问题的选择添加操作
- java - 链表递归追加
- visual-studio-code - 根据文件扩展名在 VS Code 中定义多个启动配置
- cas - CAS 将身份验证委托给 Azure SAML