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

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 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.
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 the Stream<State> using the provided onData, onError and onDone 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 type E.
inherited
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.
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 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.
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 an EventTransformer instead. Will be removed in v8.0.0
inherited
transformTransitions(Stream<Transition<Event, State>> transitions) Stream<Transition<Event, State>>
@Deprecated - Override Stream<State> get stream instead. Will be removed in v8.0.0
inherited

Operators

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

Static Properties

storage Storage
Instance of Storage which will be used to manage persisting/restoring the Bloc state.
getter/setter pair