stream<N extends BaseNotifier<T>, T> method

  1. @override
Stream<NotifierEvent<T>> stream<N extends BaseNotifier<T>, T>(
  1. ProviderAccessor<BaseProvider<N, T>, N, T> provider, [
  2. void onInitNotifier(
    1. BaseProvider<BaseNotifier, dynamic>,
    2. BaseNotifier
    )?
])
override

Listen for changes to a provider.

Do not call this method during build as you will create a new listener every time.

You need to dispose the subscription manually.

Implementation

@override
Stream<NotifierEvent<T>> stream<N extends BaseNotifier<T>, T>(
  ProviderAccessor<BaseProvider<N, T>, N, T> provider, [
  void Function(BaseProvider, BaseNotifier)? onInitNotifier,
]) {
  final notifier = _getState(provider.provider, onInitNotifier);
  if (notifier is N) {
    return notifier.getStream();
  }

  // The given provider was a family provider.
  // Access the child provider and return its future.
  final actualProvider = provider.getActualProvider(notifier);
  return _getState(actualProvider).getStream();
}