Bloc<Event, State> class abstract

Takes a Stream of Events as input and transforms them into a Stream of States as output.



Bloc(State initialState)
Takes a Stream of Events as input and transforms them into a Stream of States as output.


hashCode int
The hash code for this object.
no setterinherited
isClosed bool
Whether the bloc is closed.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
state → State
The current state.
no setterinherited
stream Stream<State>
The current state stream.
no setterinherited


add(Event event) → void
Notifies the Bloc of a new event which triggers all corresponding EventHandler instances. If close has already been called, any subsequent calls to add will be ignored and will not result in any subsequent state changes.
addError(Object error, [StackTrace? stackTrace]) → void
Reports an error which triggers onError with an optional StackTrace.
close() Future<void>
Closes the event and state Streams. This method should be called when a Bloc is no longer needed. Once close is called, events that are added will not be processed. In addition, if close is called while events are still being processed, the Bloc will finish processing the pending events.
emit(State state) → void
emit should never be used outside of tests.
listen(void onData(State)?, {Function? onError, void onDone()?, bool? cancelOnError}) StreamSubscription<State>
Adds a subscription to the Stream<State>. Returns a StreamSubscription which handles events from the Stream<State> using the provided onData, onError and onDone handlers.
mapEventToState(Event event) Stream<State>
@Deprecated - Use on
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
on<E extends Event>(EventHandler<E, State> handler, {EventTransformer<E>? transformer}) → void
Register event handler for an event of type E. There should only ever be one event handler per event type E.
onChange(Change<State> change) → void
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.
onError(Object error, StackTrace stackTrace) → void
Called whenever an error occurs and notifies BlocObserver.onError.
onEvent(Event event) → void
Called whenever an event is added to the Bloc. A great spot to add logging/analytics at the individual Bloc level.
onTransition(Transition<Event, State> transition) → void
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. executed. onTransition is called before a Bloc's state has been updated. A great spot to add logging/analytics at the individual Bloc level.
toString() String
A string representation of this object.
transformEvents(Stream<Event> events, TransitionFunction<Event, State> transitionFn) Stream<Transition<Event, State>>
@Deprecated - Use on<Event> with an EventTransformer instead. Will be removed in v8.0.0
transformTransitions(Stream<Transition<Event, State>> transitions) Stream<Transition<Event, State>>
@Deprecated - Override Stream<State> get stream instead. Will be removed in v8.0.0


operator ==(Object other) bool
The equality operator.

Static Properties

observer BlocObserver
The current BlocObserver instance.
getter/setter pair
transformer EventTransformer
The default EventTransformer used for all event handlers. By default all events are processed concurrently.
getter/setter pair