PersistedBlocFx<Event, State, Effect> class
abstract
Base class for BlocFx with built-in state persistence.
This is a convenience class that combines BlocFx with automatic state persistence. Use this when you want persistence without having to use mixins.
Example usage:
class LoginBloc extends PersistedBlocFx<LoginEvent, LoginState, LoginEffect> {
LoginBloc() : super(LoginState.initial());
@override
String get storageKey => 'login_bloc';
@override
LoginState fromJson(Map<String, dynamic> json) => LoginState.fromJson(json);
@override
Map<String, dynamic> toJson(LoginState state) => state.toJson();
}
Constructors
- PersistedBlocFx(State initialState)
Properties
- config → PersistenceConfig
-
no setter
-
effects
→ Stream<
Effect> -
no setterinherited
- 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
- storageKey → String
-
no setter
-
stream
→ Stream<
State> -
The current stream of states.
no setterinherited
Methods
-
add(
Event event) → void -
Notifies the
Blocof a neweventwhich triggers all correspondingEventHandlerinstances.inherited -
addError(
Object error, [StackTrace? stackTrace]) → void -
Reports an
errorwhich triggersonErrorwith an optional StackTrace.inherited -
clearPersistedState(
) → Future< void> - Clear persisted state from storage.
-
close(
) → Future< void> -
Closes the
eventandstateStreams. This method should be called when aBlocis no longer needed. Once close is called,eventsthat are added will not be processed. In addition, if close is called whileeventsare still being processed, theBlocwill finish processing the pendingevents.override -
emit(
State state) → void -
emitis only for internal use and should never be called directly outside of tests. TheEmitterinstance provided to eachEventHandlershould be used instead.inherited -
emitEffect(
Effect effect) → void -
inherited
-
fromJson(
Map< String, dynamic> json) → State -
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
changeoccurs with the givenchange. Achangeoccurs when a newstateis emitted. onChange is called before thestateof thecubitis updated. onChange is a great spot to add logging/analytics for a specificcubit. -
onDone(
Event event, [Object? error, StackTrace? stackTrace]) → void -
Called whenever an
eventhandler for a specificBlochas completed. This may include anerrorandstackTraceif an uncaught exception occurred within the event handler.inherited -
onError(
Object error, StackTrace stackTrace) → void -
Called whenever an
erroroccurs and notifiesBlocObserver.onError.inherited -
onEvent(
Event event) → void -
Called whenever an
eventisadded to theBloc. A great spot to add logging/analytics at the individualBloclevel.inherited -
onTransition(
Transition< Event, State> transition) → void -
Called whenever a
transitionoccurs with the giventransition. Atransitionoccurs when a neweventis added and a new state isemittedfrom a correspondingEventHandler.inherited -
persistState(
State state) → Future< void> - Persist current state to storage.
-
shouldPersist(
State state) → bool -
toJson(
State state) → Map< String, dynamic> -
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited