useValueListenable<T> function

void useValueListenable<T>(
  1. ValueListenable<T> listenable,
  2. void listener(
    1. T value
    )
)

Subscribes to a ValueListenable and calls the listener when the value changes.

Parameters:

  • listenable: The ValueListenable to subscribe to
  • listener: Function called when the value changes, receives the new value

Example:

final notifier = ValueNotifier(0);
useValueListenable(notifier, (value) {
  print('Value changed to: $value');
});

Implementation

void useValueListenable<T>(
    ValueListenable<T> listenable, void Function(T value) listener) {
  useMemoized(() {
    void internalListener() {
      listener(listenable.value);
    }

    listenable.addListener(internalListener);
    return internalListener;
  }, (listener) => listenable.removeListener(listener));
}