MainCubit<S extends MainBlocState> class
abstract
A base class for all Cubits in the application.
This class extends BaseCubitDelegate and provides a foundation for creating Cubits with specific state types.
Type Parameters:
S: The type of states this Cubit will emit. Must extend MainBlocState.
Features:
- Built-in loading state management via CommonBloc
- Navigation support via AppNavigator
- Error handling with cubitCatch
Usage:
class CounterCubit extends MainCubit<CounterState> {
CounterCubit() : super(const CounterState.initial());
Future<void> increment() async {
await cubitCatch(
actions: () async {
await Future.delayed(Duration(seconds: 1));
emit(state.copyWith(count: state.count + 1));
},
keyLoading: 'increment',
onError: handleError,
);
}
void decrement() {
if (state.count > 0) {
emit(state.copyWith(count: state.count - 1));
}
}
}
- Inheritance
-
- Object
- BlocBase<
S> - Cubit<
S> - BaseCubitDelegate<
S> - MainCubit
- Implementers
Constructors
- MainCubit(S initialState)
Properties
- commonBloc ↔ CommonBloc
-
getter/setter pairinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- isClosed → bool
-
Whether the bloc is closed.
no setterinherited
-
getter/setter pairinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- state → S
-
The current state.
no setterinherited
-
stream
→ Stream<
S> -
The current stream of states.
no setterinherited
Methods
-
addError(
Object error, [StackTrace? stackTrace]) → void -
Reports an
errorwhich triggers onError with an optional StackTrace.inherited -
catchError(
{required Future< void> actions(), bool isLoading = true, String keyLoading = LoadingKey.global, Future<void> onError(Object error, StackTrace stackTrace)?, Future<void> onFinally()?}) → Future<void> -
Executes a given asynchronous action within a try-catch block, handling loading states.
inherited
-
close(
) → Future< void> -
Closes the instance.
This method should be called when the instance is no longer needed.
Once close is called, the instance can no longer be used.
inherited
-
cubitCatch(
{required Future< void> actions(), bool isLoading = true, String keyLoading = LoadingKey.global, Future<void> onError(Object error, StackTrace stackTrace)?, Future<void> onFinally()?}) → Future<void> -
Executes a given asynchronous action within a try-catch block, handling loading states.
inherited
-
dispose(
) → void -
inherited
-
emit(
S state) → void -
Updates the
stateto the providedstate. emit does nothing if thestatebeing emitted is equal to the currentstate.inherited -
hideLoading(
{String? key = LoadingKey.global}) → void -
Hides the loading overlay for a specific key.
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onChange(
Change< S> 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.inherited -
onDeactivate(
) → void -
onDependenciesChanged(
) → void -
onError(
Object error, StackTrace stackTrace) → void -
Called whenever an
erroroccurs and notifies BlocObserver.onError.inherited -
reset(
S initialState) → void -
Resets the bloc to its initial state.
inherited
-
showLoading(
{String? key = LoadingKey.global}) → void -
Shows the loading overlay for a specific key.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited