StateController<T> class
abstract
A controller that manages state for asynchronous operations.
This controller provides a standard way to handle loading, error, and success states for async operations. It's particularly useful for API calls and other asynchronous operations.
Type parameters:
T: The type of data this controller will manage
Example:
class UserController extends StateController<User> {
Future<void> fetchUser() async {
change(null, status: RxStatus.loading());
try {
final user = await userRepository.getUser();
change(user, status: RxStatus.success());
} catch (e) {
change(state, status: RxStatus.error(e.toString()));
}
}
}
- Inheritance
-
- Object
- ChangeNotifier
- ListNotifier
- GetxController
- StateController
- Mixed-in types
-
- StateMixin<
T>
- StateMixin<
- Available extensions
Constructors
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- hasListeners → bool
-
Whether any listeners are currently registered.
no setterinherited
- hasSubscribers → bool
-
Returns true if there is at least one active listener.
no setterinherited
- initialized → bool
-
Checks whether the controller has already been initialized.
no setterinherited
- isClosed → bool
-
Checks whether the controller has already been closed.
no setterinherited
- isDisposed → bool
-
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- state → T
-
no setterinherited
-
status
↔ GetStatus<
T> -
getter/setter pairinherited
- value ↔ T
-
getter/setter pairinherited
Methods
-
addListener(
VoidCallback listener) → Disposer -
Register a closure to be called when the object changes.
inherited
-
addListenerId(
Object? key, VoidCallback listener) → Disposer -
Adds a listener to a specific group identified by
key.inherited -
change(
T? newState, {GetStatus< T> ? status}) → void -
inherited
-
containsId(
Object id) → bool -
Checks if a listener group with the given ID exists.
inherited
-
dispose(
) → void -
Disposes all listener groups.
inherited
-
disposeId(
Object id) → void -
Disposes a specific listener group.
inherited
-
ensureGroupListenable(
Object id) → ChangeNotifier -
Ensures a group ChangeNotifier exists for
idand returns it.inherited -
futurize(
Future< T> body(), {T? initialData, String? errorMessage, bool useEmpty = true}) → void -
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
notifyGroupChildrens(
Object id) → void -
Reports that a listener group was read.
inherited
-
notifyListeners(
) → void -
Call all the registered listeners.
inherited
-
obx(
NotifierBuilder< T> widget, {Widget onError(String? error)?, Widget? onLoading, Widget? onEmpty, WidgetBuilder? onCustom}) → Widget -
Available on StateMixin<
T> , provided by the StateExt extension -
onClose(
) → void -
Called before onDelete method. onClose might be used to
dispose resources used by the controller. Like closing events,
or streams before the controller is destroyed.
Or dispose objects that can potentially create some memory leaks,
like TextEditingControllers, AnimationControllers.
Might be useful as well to persist some data on disk.
inherited
-
onDelete(
) → void -
Called when the controller is removed from memory.
inherited
-
onInit(
) → void -
Called immediately after the widget is allocated in memory.
You might use this to initialize something for the controller.
inherited
-
onReady(
) → void -
Called 1 frame after onInit(). It is the perfect place to enter
navigation events, like snackbar, dialogs, or a new route, or
async request.
inherited
-
onStart(
) → void -
Called at the exact moment the widget is allocated in memory.
It uses an internal "callable" type, to avoid any @overrides in subclasses.
This method should be internal and is required to define the
lifetime cycle of the subclass.
inherited
-
refresh(
) → void -
Notifies all listeners to update using Flutter's native ChangeNotifier.
inherited
-
refreshGroup(
Object id) → void -
Refreshes only the listeners in a specific group.
inherited
-
removeListener(
VoidCallback listener) → void -
Remove a previously registered closure from the list of closures that are
notified when the object changes.
inherited
-
removeListenerId(
Object id, VoidCallback listener) → void -
Removes a listener from a specific group.
inherited
-
reportAdd(
VoidCallback disposer) → void -
Reports a disposer callback to the global notifier.
inherited
-
reportRead(
) → void -
Reports that this notifier was read.
inherited
-
setEmpty(
) → void -
inherited
-
setError(
Object error) → void -
inherited
-
setLoading(
) → void -
inherited
-
setSuccess(
T data) → void -
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
update(
[List< Object> ? ids, bool condition = true]) → void -
Notifies listeners to update the UI.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited