【发布时间】:2019-03-25 15:38:42
【问题描述】:
bloc.dart
class Bloc{
Bloc(){
additionalController.stream.listen(onAdd);
}
void dispose() async {
additionalController.close();
_itemAdd.close();
}
final additionalController = StreamController<Data>();
Sink<Data> get addItem => additionalController.sink;
Stream<String> get addGet => _itemAdd.stream;
final _itemAdd = BehaviorSubject<String>();
void onAdd(Data data) {
_addWork(data);
}
Future<Null> _addWork(Data data) async {
//work
}).whenComplete(() {
_itemAdd.add("complete work");
}).catchError((e) {
_itemAdd.addError("Error in Adding Data");
});
}
}
由于bloc应该只用于和共享处理业务逻辑,但错误处理部分与业务逻辑无关。
如何在 UI 上显示 bloc 的回调和错误。我不认为StreamBuilder 是唯一的解决方案。
如果我们使用StreamBuilder,这样,每次重建发生时,我们都会重复地向 bloc 发送回调,这没有任何意义。
有正确的方法吗?
提前谢谢你!!
【问题讨论】: