BlocListener会在监听的Bloc状态发生变化时被触发,并且在新状态被发射之前对任何Bloc变量的更改做出反应。以下是一些带有变量的Bloc的示例代码,展示了当Bloc发出更新状态时,将触发BlocListener的状态更改回调。
class SampleBloc extends Bloc {
bool isActive = false;
@override
SampleState get initialState => SampleInitialState();
@override
Stream mapEventToState(SampleEvent event) async* {
if (event is SampleEventToggle) {
isActive = !isActive;
yield SampleStateActive(isActive: isActive);
}
}
}
class SampleStateActive extends SampleState {
final bool isActive;
SampleStateActive({required this.isActive});
@override
List