[flutter]StreamBuilder 如何使用?
在 Flutter 中使用 StreamBuilder
StreamBuilder 是 Flutter 提供的一个小部件(widget),用于监听 Stream 并在数据更新时自动重建 UI。
🛠 基本用法
代码解析
- 创建一个 Stream
Stream.periodic(Duration(seconds: 1), (count) => count);- 每秒钟递增一次并发送新的值。
- 使用
StreamBuilder监听 Streamstream: _counterStream()监听流的数据变化。initialData: 0设置初始值,防止 UI 初始状态为空。builder方法:snapshot.connectionState判断流的连接状态:waiting:等待数据时显示 "等待数据..."
snapshot.hasError处理异常情况。snapshot.data显示当前流的数据。
进阶用法:手动控制 Stream
如果你想手动触发事件,而不是定时触发,可以使用 StreamController。
总结
✅ StreamBuilder 适用于监听 异步数据流,常用于 WebSockets、计时器、数据库监听等场景。
✅ Stream.periodic() 适合定期触发的流,而 StreamController 适合 手动控制数据流。
✅ 在 dispose() 方法中关闭 StreamController,防止内存泄漏。
留言
張貼留言