listen<T> method
void
listen<T>(
- ProviderListenable<
T> provider, - void listener(
- T? previous,
- T value
- void onError(
- Object error,
- StackTrace stackTrace
override
Listen to a provider and call listener
whenever its value changes.
This is useful for showing modals or other imperative logic.
Implementation
@override
void listen<T>(
ProviderListenable<T> provider,
void Function(T? previous, T value) listener, {
void Function(Object error, StackTrace stackTrace)? onError,
}) {
assert(
debugDoingBuild,
'ref.listen can only be used within the build method of a ConsumerWidget',
);
// We can't implement a fireImmediately flag because we wouldn't know
// which listen call was preserved between widget rebuild, and we wouldn't
// want to call the listener on every rebuild.
final sub = _container.listen<T>(provider, listener, onError: onError);
_listeners.add(sub);
}