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
Mixed-in types
Available extensions

Constructors

StateController()

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 id and 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