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 CounterIncrementPressed extends CounterEvent {}
class CounterDecrementPressed extends CounterEvent {}
class CounterBloc extends HydratedBloc<CounterEvent, int> {
CounterBloc() : super(0) {
on<CounterIncrementPressed>((event, emit) => emit(state + 1));
on<CounterDecrementPressed>((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, {Storage? storage})
- 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
- storagePrefix → String
-
Storage prefix which can be overridden to provide a custom
storage namespace.
Defaults to runtimeType but should be overridden in cases
where stored data should be resilient to obfuscation or persist
between debug/release builds.
no setterinherited
- storageToken → String
-
storageToken
is used as registration token for hydrated storage. Composed of storagePrefix and id.no setterinherited -
stream
→ Stream<
State> -
The current stream of states.
no setterinherited
Methods
-
add(
Event event) → void -
Notifies the Bloc of a new
event
which triggers all corresponding EventHandler instances.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 is only for internal use and should never be called directly
outside of tests. The Emitter instance provided to each EventHandler
should be used instead.
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(
{Storage? storage}) → void -
Populates the internal state storage with the latest state.
This should be called when using the HydratedMixin
directly within the constructor body.
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.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
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited