Ref<T> class
A reactive container that holds a single value of type T
and provides
notifications whenever the value changes.
This class implements ValueListenable to notify listeners when the value updates. It also extends ReactiveNotifier to integrate with the reactive ecosystem.
Example Usage:
// Create a reactive reference with an initial value
final count = Ref<int>(0);
// Listen for changes using a ValueListenableBuilder
ValueListenableBuilder<int>(
valueListenable: count,
builder: (context, value, child) {
return Text('Current Count: $value');
},
);
// Update the value and trigger notifications
count.value += 1; // UI updates automatically
// Reactivity: A dependent function can automatically respond to changes
watchEffect(() {
print('Count changed: ${count.value}');
});
Features:
- Reactive State: When
value
is accessed, it registers dependencies. - Efficient Updates: Notifies listeners only if the value actually changes.
- Seamless Integration: Works with
watchEffect()
and Flutter'sValueListenable
.
- Inheritance
-
- Object
- ChangeNotifier
- ReactiveNotifier<
T> - Ref
- Implemented types
Properties
- hashCode → int
-
The hash code for this object.
no setterinherited
- hasListeners → bool
-
Whether any listeners are currently registered.
no setterinherited
- mounted → bool
-
Whether the notifier is mounted.
no setterinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- value ↔ T
-
The current value of this Ref.
getter/setter pairoverride-getter
Methods
-
addListener(
VoidCallback listener) → void -
Register a closure to be called when the object changes.
inherited
-
dispose(
) → void -
Discards any resources used by the object. After this is called, the
object is not in a usable state and should be discarded (calls to
addListener will throw after the object is disposed).
inherited
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
notifyListeners(
) → void -
Call all the registered listeners.
inherited
-
removeListener(
VoidCallback listener) → void -
Remove a previously registered closure from the list of closures that are
notified when the object changes.
inherited
-
select<
U> (U getter(T value)) → Computed< U> -
Creates a Computed that selects a value from the notifier.
inherited
-
toString(
) → String -
Returns a string representation containing the runtime type and the current value.
override
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited