# onTransition method Null safety

1. @protected
2. @mustCallSuper

void onTransition(

1. Transition<DynamicWidgetFormEvent, DynamicWidgetFormState> transition

)
@mustCallSuper, @protected, inherited

Called whenever a `transition` occurs with the given `transition`. A `transition` occurs when a new `event` is added and a new state is `emitted` from a corresponding `EventHandler`.

onTransition is called before a `Bloc`'s state has been updated. A great spot to add logging/analytics at the individual `Bloc` level.

Note: `super.onTransition` should always be called first.

    @override
    void onTransition(Transition<Event, State> transition) {
      // Always call super.onTransition with the current transition
      super.onTransition(transition);

      // Custom onTransition logic goes here
    }

See also:

- `BlocObserver.onTransition` for observing transitions globally.

## Implementation

    @protected
    @mustCallSuper
    void onTransition(Transition<Event, State> transition) {
      // ignore: invalid_use_of_protected_member
      _blocObserver.onTransition(this, transition);
    }