we are also able to capture information about what triggered the state change.
We can do this by overriding onTransition
.
The change from one state to another is called a Transition. A Transition consists of the current state, the event, and the next state.
abstract class CounterEvent {}
class CounterIncrementPressed extends CounterEvent {}
class CounterBloc extends Bloc<CounterEvent, int> {
CounterBloc() : super(0) {
on<CounterIncrementPressed>((event, emit) => emit(state + 1));
}
@override
void onChange(Change<int> change) {
super.onChange(change);
print(change);
}
@override
void onTransition(Transition<CounterEvent, int> transition) {
super.onTransition(transition);
print(transition);
}
}Copy to clipboardErrorCopied
If we then rerun the same main.dart
snippet from before, we should see the following output:
Transition { currentState: 0, event: Increment, nextState: 1 }
Change { currentState: 0, nextState: 1 }