如何解决如何清除blocpattern流中的数据?
我的这个功能不是清除购物车。
clearCart(){
_listController.close();
}
我应该在清晰的购物车功能中调用其他属性还是实现其他方法吗? 这是我的CartListBloc代码:
class CartListBloc extends BlocBase {
CartListBloc();
var _listController = BehaviorSubject<List<FoodItem>>.seeded([]);
//provider class
CartProvider provider = CartProvider();
//output
Stream<List<FoodItem>> get listStream => _listController.stream;
//input
Sink<List<FoodItem>> get listSink => _listController.sink;
addToList(FoodItem foodItem) {
listSink.add(provider.addToList(foodItem));
}
removeFromList(FoodItem foodItem) {
listSink.add(provider.removeFromList(foodItem));
}
clearCart(){
// What should I put here to clear the bloc of Streams from cart
}
//dispose will be called automatically by closing its streams
@override
void dispose() {
_listController.close();
super.dispose();
}
}
解决方法
Stream
类具有drain
方法,该方法将从Stream
中删除所有数据。但是,您似乎正在尝试清除BehaviorSubject
,因此不能使用drain
(It doesn't actually clear the subject)。相反,您可能应该简单地向List
添加一个空的null
或null
(在这种情况下,您需要在UI中处理此_listController
),这将为您提供没有项目的新活动。
编辑:
示例:
_listController.add([]); //Now your listeners will receive
//new event with empty list of items
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。