HydratedBloc<Event, State> class
abstract
Specialized Bloc which handles initializing the Bloc state based on the persisted state. This allows state to be persisted across hot restarts as well as complete app restarts.
abstract class CounterEvent {}
class Increment extends CounterEvent {}
class Decrement extends CounterEvent {}
class CounterBloc extends HydratedBloc<CounterEvent, int> {
CounterBloc() : super(0) {
on<Increment>((event, emit) => emit(state + 1));
on<Decrement>((event, emit) => emit(state - 1));
}
@override
int fromJson(Map<String, dynamic> json) => json['value'] as int;
@override
Map<String, int> toJson(int state) => {'value': state};
}
- Inheritance
- Mixed in types
-
- HydratedMixin<
State>
- HydratedMixin<
Constructors
- HydratedBloc(State state)
- Specialized Bloc which handles initializing the Bloc state based on the persisted state. This allows state to be persisted across hot restarts as well as complete app restarts.
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- id → String
-
id is used to uniquely identify multiple instances
of the same HydratedBloc type.
In most cases it is not necessary;
however, if you wish to intentionally have multiple instances
of the same HydratedBloc, then you must override id
and return a unique identifier for each HydratedBloc instance
in order to keep the caches independent of each other.
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
- storageToken → String
-
storageToken
is used as registration token for hydrated storage.no setterinherited -
stream
→ Stream<
State> -
The current state stream.
no setterinherited
Methods
-
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.inherited -
addError(
Object error, [StackTrace? stackTrace]) → void -
Reports an
error
which triggers onError with an optional StackTrace.inherited -
clear(
) → Future< void> -
clear is used to wipe or invalidate the cache of a HydratedBloc.
Calling clear will delete the cached state of the bloc
but will not modify the current state of the bloc.
inherited
-
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
.inherited -
emit(
State state) → void -
emit should never be used outside of tests.
inherited
-
fromJson(
Map< String, dynamic> json) → State? -
Responsible for converting the
Map<String, dynamic>
representation of the bloc state into a concrete instance of the bloc state.inherited -
hydrate(
) → void -
Populates the internal state storage with the latest state.
This should be called when using the HydratedMixin
directly within the constructor body.
inherited
-
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 theStream<State>
using the providedonData
,onError
andonDone
handlers.inherited -
mapEventToState(
Event event) → Stream< State> -
@Deprecated - Use on
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
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 typeE
.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 thecubit
is updated. onChange is a great spot to add logging/analytics for a specificcubit
.inherited -
onError(
Object error, StackTrace stackTrace) → void -
Called whenever an
error
occurs and notifies BlocObserver.onError.inherited -
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.inherited -
onTransition(
Transition< Event, State> transition) → void -
Called whenever a
transition
occurs with the giventransition
. Atransition
occurs when a newevent
is added and a new state isemitted
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.inherited -
toJson(
State state) → Map< String, dynamic> ? -
Responsible for converting a concrete instance of the bloc state
into the the
Map<String, dynamic>
representation.inherited -
toString(
) → String -
A string representation of this object.
inherited
-
transformEvents(
Stream< Event> events, TransitionFunction<Event, State> transitionFn) → Stream<Transition< Event, State> > -
@Deprecated - Use
on<Event>
with anEventTransformer
instead. Will be removed in v8.0.0inherited -
transformTransitions(
Stream< Transition< transitions) → Stream<Event, State> >Transition< Event, State> > -
@Deprecated - Override
Stream<State> get stream
instead. Will be removed in v8.0.0inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited