LxState<T> class

A reactive state container for immutable data flow.

LxState is similar to LxVar, but enforces explicit state transitions via emit or update instead of property setters.

It is ideal for managing complex state objects where you want to ensure controlled modification.

Unlike LxVar, it does not expose in-place mutation helpers or stream binding APIs.

Inheritance
Available extensions

Constructors

LxState(T initial, {void onListen()?, void onCancel()?, String? name, bool isSensitive = false, bool equals(T previous, T current)?})
Creates a state container with an initial value.

Properties

asReactive LxReactive<T>
Exposes this state as a read-only LxReactive interface.
no setter
computedValue → T

Available on LxReactive<LxStatus<T>>, provided by the LxStatusReactiveExtensions extension

Alias for requireValue.
no setter
equals bool Function(T previous, T current)?
Custom equality function. When null, uses ==.
finalinherited
errorOrNull Object?

Available on LxReactive<LxStatus<T>>, provided by the LxStatusReactiveExtensions extension

Returns the current error if the status is LxError, otherwise null.
no setter
graphDepth int
Returns the current depth in the dependency graph.
getter/setter pairinherited
hashCode int
The hash code for this object.
no setterinherited
hasListener bool
Whether there are active listeners.
no setterinherited
hasValue bool

Available on LxReactive<LxStatus<T>>, provided by the LxStatusReactiveExtensions extension

Alias for isSuccess.
no setter
id int
A unique runtime identifier for this reactive instance.
finalinherited
isDisposed bool
Whether the reactive object has been closed/disposed.
no setterinherited
isError bool

Available on LxReactive<LxStatus<T>>, provided by the LxStatusReactiveExtensions extension

Returns true if the status is LxError.
no setter
isIdle bool

Available on LxReactive<LxStatus<T>>, provided by the LxStatusReactiveExtensions extension

Returns true if the status is LxIdle.
no setter
isLoading bool

Available on LxReactive<LxStatus<T>>, provided by the LxStatusReactiveExtensions extension

Alias for isWaiting.
no setter
isSensitive bool
Whether this reactive object contains sensitive data.
getter/setter pairinherited
isSuccess bool

Available on LxReactive<LxStatus<T>>, provided by the LxStatusReactiveExtensions extension

Returns true if the status is LxSuccess.
no setter
isWaiting bool

Available on LxReactive<LxStatus<T>>, provided by the LxStatusReactiveExtensions extension

Returns true if the status is LxWaiting.
no setter
lastValue → T?

Available on LxReactive<LxStatus<T>>, provided by the LxStatusReactiveExtensions extension

Returns the LxStatus.lastValue (the most recent successful value).
no setter
name String?
An optional descriptive name for debugging and profiling.
getter/setter pairinherited
onCancel → void Function()?
Called when the stream is cancelled.
finalinherited
onListen → void Function()?
Called when the stream is listened to.
finalinherited
ownerId String?
The registration key of the owning controller, if applicable.
getter/setter pairinherited
requireValue → T

Available on LxReactive<LxStatus<T>>, provided by the LxStatusReactiveExtensions extension

Force-retrieves the current value if the status is LxSuccess.
no setter
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
stackTraceOrNull StackTrace?

Available on LxReactive<LxStatus<T>>, provided by the LxStatusReactiveExtensions extension

Returns the stack trace if the status is LxError, otherwise null.
no setter
stream Stream<T>
A Stream that emits the latest value whenever it updates.
no setterinherited
value → T
The current state of the reactive object.
no setterinherited
valueOrNull → T?

Available on LxReactive<LxStatus<T>>, provided by the LxStatusReactiveExtensions extension

Returns the current value if the status is LxSuccess, otherwise null.
no setter
wait Future<T>

Available on LxReactive<LxStatus<T>>, provided by the LxStatusReactiveExtensions extension

Returns a Future that completes when the operation reaches a terminal state.
no setter

Methods

addListener(void listener()) → void
Adds a listener.
inherited
call() → T
Functor-like call to get value.
inherited
close() → void
Permanently closes the reactive object and releases all internal resources.
inherited
dispose() → void
Disposes the notifier.
inherited
emit(T state) → void
Emits a new state.
listen(void callback(T value)) LxWorker<T>

Available on LxReactive<T>, provided by the LxReactiveWatchExtensions extension

Attaches a listener to this reactive value.
listen(void onSuccess(T value), {void onIdle()?, void onWaiting()?, void onError(Object error)?, dynamic onProcessingError(Object error, StackTrace stackTrace)?}) LxWorker<LxStatus<T>>

Available on LxReactive<LxStatus<T>>, provided by the LxStatusReactiveExtensions extension

Specialized listen for async status that allows handling individual states.
named(String name) → R

Available on R, provided by the LxNamingExtension extension

assigns a debug name to this reactive object.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
notify() → void
Alias for refresh.
inherited
refresh() → void
Triggers a notification without changing the value.
inherited
register(String ownerId) → R

Available on R, provided by the LxNamingExtension extension

Links this reactive object to an owner ID.
removeListener(void listener()) → void
Removes a listener.
inherited
select<R>(R selector(T value)) LxComputed<R>
Creates a specific selection of the state that only updates when the selected value changes.
inherited
sensitive() → R

Available on R, provided by the LxNamingExtension extension

Marks this object as containing sensitive data (redacted in logs).
toString() String
A string representation of this object.
inherited
update(T reducer(T state)) → void
Updates the state by applying a reducer function to the current value.

Operators

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