如何在rxdart中过滤可疑列表

时间:2019-02-03 05:44:36

标签: dart flutter reactive-programming rxdart bloc

我正在尝试在rxdart中实现bloc模式。我正在尝试构建app的todo app类型。我实现了显示列表中的所有项目,但是我不希望不在不同部分显示已完成和未完成的项目。但是我无法根据rxdart上的完成条件过滤项目。

import 'package:rxdart/rxdart.dart';
import '../models/ShoppingItem.dart';
class ShoppingItemBloc {
  final _shoppingItems = BehaviorSubject<List<ShoppingItem>> 
(seedValue: []);

Observable<List<ShoppingItem>> get allShoppingItems => 
_shoppingItems.stream;

 //Getter to implement
 Observable<List<ShoppingItem>> get completedShoppingItems =>

 dispose() {
  _shoppingItems.close();
 }
}

我想要的是获取完整的shoppingItems。 ShoppingItem类的布尔属性已完成。我想在此基础上对其进行过滤。

感谢您的任何帮助

1 个答案:

答案 0 :(得分:3)

您可以根据需要使用流中的where过滤掉。由于您正在观察项目列表,因此需要在过滤单个项目之前进行映射。就我们而言,就是这样。

 Observable<List<ShoppingItem>> get completedShoppingItems => 
    _shoppingItems.stream.map((itemList) =>
        itemList.where((item) => item.completed));