例如:
StreamBuilder(
stream: bloc.someStateStream, // 监听状态变化的Stream
builder: (context, snapshot) {
if (snapshot.hasData) { // 当Stream中有数据时,更新UI
return Text(snapshot.data.toString()); // 显示状态的数据
} else {
return CircularProgressIndicator(); // 加载中的提示
}
},
)
例如:
class MyBloc extends ChangeNotifier {
String _someState;
String get someState => _someState;
set someState(String newState) {
_someState = newState;
notifyListeners(); // 通知监听器状态的变化
}
}
class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
final bloc = Provider.of(context); // 通过Provider获取Bloc实例
return Text(bloc.someState); // 监听状态变化并实时更新UI
}
}