Bloc<Event extends Object?, State extends Object?> class
abstract
Takes a Stream
of Events
as input
and transforms them into a Stream
of States
as output.
Constructors
- Bloc(State initialState)
-
Takes a
Stream
ofEvents
as input and transforms them into aStream
ofStates
as output.
Properties
-
done
→ Future<
void> -
Return a future which is completed when the IBlocSink is finished.
no setteroverride
- hashCode → int
-
The hash code for this object.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- state → State
-
The current state.
no setteroverride
-
stream
→ StateStream<
State> -
The state stream.
no setteroverride
Methods
-
add(
Event event) → void -
Notifies the Bloc of a new
event
If close has already been called, any subsequent calls to add will be ignored and will not result in any subsequent state changes.override -
addError(
Object error, [StackTrace? stackTrace]) → void -
Reports an
error
which triggers onError with an optional StackTrace. If close has already been called, any subsequent calls to addError will be ignored and will not result in any subsequent state changes.override -
addStream(
Stream< Event> eventStream) → Future<void> -
Pass all
eventStream
events to the Bloc If close has already been called, any subsequent calls to addStream will be ignored and will not result in any subsequent state changes.override -
close(
) → Future< void> -
Closes the
event
andstate
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 whileevents
are still being processed, the Bloc will finish processing the pendingevents
.override -
mapEventToState(
Event event) → Stream< State> -
Must be implemented when a class extends Bloc.
mapEventToState is called whenever an
event
is added and is responsible for converting thatevent
into a new state. mapEventToState canyield
zero, one, or multiple states for an event.inherited -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onChange(
Change< State> change) → void -
Called whenever a
change
occurs with the givenchange
. Achange
occurs when a newstate
is emitted. onChange is called before thestate
of thebloc
is updated. onChange is a great spot to add logging/analytics for a specificbloc
.override -
onError(
Object error, StackTrace stackTrace) → void -
Called whenever an
error
occurs and notifies IBlocObserver.onError.override -
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.override -
onTransition(
Transition< Event, State> transition) → void -
Called whenever a
transition
occurs with the giventransition
. Atransition
occurs when a newevent
is added and mapEventToState executed. onTransition is called before a Bloc's state has been updated. A great spot to add logging/analytics at the individual Bloc level.override -
setState(
State state) → void -
Updates the
state
to the providedstate
. setState does nothing if the instance has been closed.override -
toString(
) → String -
A string representation of this object.
inherited
-
transformEvents(
Stream< Event> events, TransitionFunction<Event, State> transitionFn) → Stream<Transition< Event, State> > -
Transforms the
events
stream along with atransitionFn
function into aStream<Transition>
. Events that should be processed by mapEventToState need to be passed totransitionFn
. By defaultasyncExpand
is used to ensure allevents
are processed in the order in which they are received. You can override transformEvents for advanced usage in order to manipulate the frequency and specificity with which mapEventToState is called as well as whichevents
are processed.override -
transformTransitions(
Stream< Transition< transitions) → Stream<Event, State> >Transition< Event, State> > -
Transforms the
Stream<Transition>
into a newStream<Transition>
. By default transformTransitions returns the incomingStream<Transition>
. You can override transformTransitions for advanced usage in order to manipulate the frequency and specificity at whichtransitions
(state changes) occur.override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
observe<
R extends Object?> (R body(), {required IBlocObserver observer}) → R -
Runs
body
in its own zone. Observing all BLoC's inside this zone withobserver
instance.