如何过滤 rxdart 中的可观察列表
How to filter a list of obseravble in rxdart
我正在尝试在 rxdart 中实现 bloc 模式。我正在尝试构建待办事项应用程序类型的应用程序。我实现了显示列表中的所有项目,但我想要的不是在不同部分显示已完成和未完成的项目。但是我无法根据在 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 。 class ShoppingItem 有一个布尔值 属性 completed 。我想在此基础上对其进行过滤。
如有任何帮助,将不胜感激
您可以根据需要使用流中的 where 进行过滤。由于您正在观察项目列表,因此在过滤单个项目之前需要映射。在我们的例子中,它将是这样的。
Observable<List<ShoppingItem>> get completedShoppingItems =>
_shoppingItems.stream.map((itemList) =>
itemList.where((item) => item.completed));
我正在尝试在 rxdart 中实现 bloc 模式。我正在尝试构建待办事项应用程序类型的应用程序。我实现了显示列表中的所有项目,但我想要的不是在不同部分显示已完成和未完成的项目。但是我无法根据在 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 。 class ShoppingItem 有一个布尔值 属性 completed 。我想在此基础上对其进行过滤。
如有任何帮助,将不胜感激
您可以根据需要使用流中的 where 进行过滤。由于您正在观察项目列表,因此在过滤单个项目之前需要映射。在我们的例子中,它将是这样的。
Observable<List<ShoppingItem>> get completedShoppingItems =>
_shoppingItems.stream.map((itemList) =>
itemList.where((item) => item.completed));