Bloc中的Stream
什么是Stream?
- Stream 是 Dart 语言中的一个概念,它代表了一系列异步事件的序列。在 Bloc 中,Stream 被用来在数据层和表示层之间传递数据。
如何在 Bloc 中使用 Stream?
- 在 Bloc 中,通常会创建一个 StreamController 对象来管理一个 Stream。通过 StreamController,我们可以向 Stream 发送新的事件或数据。
// 创建一个 StreamController
StreamController<String> _controller = StreamController<String>();
// 向 Stream 发送数据
_controller.sink.add('New data');
// 监听 Stream 的数据变化
_controller.stream.listen((data) {
print(data);
});
// 关闭 StreamController
_controller.close();
在 Flutter 中如何使用带有 Stream 的 Bloc?
- 在 Flutter 应用中,可以将带有 Stream 的 Bloc 注入到 Widget 树中,并通过监听 Bloc 中的 Stream 数据来更新界面。
class MyWidget extends StatelessWidget {
final MyBloc bloc;
MyWidget({Key key, this.bloc}) : super(key: key);
@override
Widget build(BuildContext context) {
return StreamBuilder<String>(
stream: bloc.stream,
builder: (context, snapshot) {
if (snapshot.hasData) {
return Text(snapshot.data);
} else {
return CircularProgressIndicator();
}
},
);
}
}