onChange method
Called whenever a change occurs with the given change.
A change occurs when a new state is emitted.
onChange is called before the state of the cubit is updated.
onChange is a great spot to add logging/analytics for a specific cubit.
Note: super.onChange should always be called first.
@override
void onChange(Change change) {
// Always call super.onChange with the current change
super.onChange(change);
// Custom onChange logic goes here
}
See also:
BlocObserverfor observingCubitbehavior globally.
Implementation
@override
void onChange(Change<State> change) {
super.onChange(change);
final state = change.nextState;
_state = state;
if (_onErrorCallbackInProgress) return;
if (_errorBehavior == HydrationErrorBehavior.retain) return;
try {
final stateJson = _toJson(state);
if (stateJson != null) {
__storage.write(storageToken, stateJson).then((_) {}, onError: onError);
}
} catch (error, stackTrace) {
onError(error, stackTrace);
rethrow;
}
}