我在欧盟上有这种方法
fetchProductAttribute(int _prodId) async {
List<ProductAttribute> productAttribute = await _repository.fetchProductAttribute(_prodId).catchError((err) => _fetcher.addError(err));
_fetcher.sink.add(productAttribute);
}
这将调用存储库,然后将api传递到后端。现在我要过滤这些数据。
我将对此进行修改,但无法正常工作。如何正确执行此操作?
fetchProductAttribute(int _prodId) async {
List<ProductAttribute> productAttribute = await _repository.fetchProductAttribute(_prodId).catchError((err) => _fetcher.addError(err));
for(var c in productAttribute){
if(c.variant==true){
_fetcher.sink.add(productAttribute);
}
}
}
所有数据仍在继续...我只希望在屏幕上显示变量true的数据。该怎么做?
我看过一篇有关如何使用StreamSubscription here和here在Stream上进行过滤的文章,但这不是我想要的。我想从REST的早期版本中过滤掉。
答案 0 :(得分:1)
正如一条评论所述,在列表上使用where
运算符。
fetchProductAttribute(int _prodId) async {
List<ProductAttribute> productAttribute = await _repository.fetchProductAttribute(_prodId).catchError((err) => _fetcher.addError(err));
productAttribute = productAttribute.where((c) => c.variant == true).toList()
_fetcher.sink.add(productAttribute);
}