on<E extends Event> method

  1. @override
void on<E extends Event>(
  1. EventHandler<E, State> handler, {
  2. EventTransformer<E>? transformer,
})

Register event handler for an event of type E. There should only ever be one event handler per event type E.

abstract class CounterEvent {}
class CounterIncrementPressed extends CounterEvent {}

class CounterBloc extends Bloc<CounterEvent, int> {
  CounterBloc() : super(0) {
    on<CounterIncrementPressed>((event, emit) => emit(state + 1));
  }
}
  • A StateError will be thrown if there are multiple event handlers registered for the same type E.

By default, events will be processed concurrently.

See also:

  • EventTransformer to customize how events are processed.
  • package:bloc_concurrency for an opinionated set of event transformers.

Implementation

@override
void on<E extends Event>(EventHandler<E, State> handler, {EventTransformer<E>? transformer}) {
  _bloc.on(handler, transformer: transformer);
}