ComputedImpl<T> class
Implementation of Computed that automatically updates when its dependencies change.
This is the concrete implementation of the Computed interface. Computed values are derived from other reactive values and are recalculated only when their dependencies change. They are cached and only recompute when necessary, making them efficient for expensive calculations.
See Computed for the public interface and usage examples.
Example:
final firstName = Signal('John');
final lastName = Signal('Doe');
final fullName = Computed(() => '${firstName.value} ${lastName.value}');
print(fullName.value); // "John Doe"
firstName.value = 'Jane';
print(fullName.value); // "Jane Doe" - automatically updated
- Inheritance
-
- Object
- ReactiveNode
- ComputedReactiveNode<
T> - ComputedImpl
- Implemented types
-
- Computed<
T> - ReadableNode<
T> - ReadonlySignal<
T>
- Computed<
- Mixed-in types
- Implementers
- Available extensions
Constructors
- ComputedImpl(T getter(), {JoltDebugFn? onDebug})
- Creates a new computed value with the given getter function.
- ComputedImpl.withPrevious(T getter(T?), {JoltDebugFn? onDebug})
-
Creates a computed value with a getter that receives the previous value.
factory
Properties
- deps ↔ Link?
-
First dependency link in the chain.
getter/setter pairinherited
- depsTail ↔ Link?
-
Last dependency link in the chain.
getter/setter pairinherited
- flags ↔ int
-
Reactive flags for this node.
getter/setter pairinherited
- getter → T Function()
-
finalinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- isDisposed → bool
-
Whether this node has been disposed.
no setterinherited
- peek → T
-
Returns the current computed value without establishing a reactive dependency.
no setteroverride
- peekCached → T
-
Returns the cached computed value without establishing a reactive dependency.
no setteroverride
- pendingValue ↔ T?
-
getter/setter pairinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
stream
→ Stream<
T> -
Available on Readable<
Converts this reactive value to a broadcast stream.T> , provided by the JoltUtilsStreamExtension extensionno setter - subs ↔ Link?
-
First subscriber link in the chain.
getter/setter pairinherited
- subsTail ↔ Link?
-
Last subscriber link in the chain.
getter/setter pairinherited
- value → T
-
Returns the current computed value and establishes a reactive dependency.
no setteroverride
Methods
-
call(
) → T -
Available on Readable<
Gets the current value (callable syntax).T> , provided by the JoltUtilsReadableExtension extension -
derived<
U> (U computed(T value)) → Computed< U> -
Available on Readable<
Creates a computed value derived from this readable.T> , provided by the JoltUtilsReadableExtension extension -
dispose(
) → void -
Disposes this node and cleans up resources.
inherited
-
get(
) → T -
Available on Readable<
Gets the current value.T> , provided by the JoltUtilsReadableExtension extension -
listen(
void onData(T event)?, {Function? onError, void onDone()?, bool? cancelOnError, bool immediately = false}) → StreamSubscription< T> -
Available on Readable<
Listens to changes in this reactive value.T> , provided by the JoltUtilsStreamExtension extension -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
notify(
) → void -
Manually notifies all subscribers that this computed value has changed.
override
-
onDispose(
) → void -
Disposes the computed value and cleans up resources.
override
-
toString(
) → String -
A string representation of this object.
override
-
until(
bool predicate(T value)) → Future< T> -
Available on ReadableNode<
Waits until the value satisfies a condition.T> , provided by the JoltUtilsUntilExtension extension -
untilWhen<
U> (U predicate) → Future< T> -
Available on ReadableNode<
Waits until the reactive value equals a specific value.T> , provided by the JoltUtilsUntilExtension extension
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited