onDispose method

  1. @override
  2. @mustCallSuper
void onDispose(
  1. void listener()
)
inherited

Adds a listener to perform an operation right before the provider is destroyed.

This includes:

  • when the provider will rebuild (such as when using watch or refresh).
  • when an autoDispose provider is no longer used
  • when the associated ProviderContainer/ProviderScope is disposed`.

See also:

  • Provider.autoDispose, a modifier which tell a provider that it should destroy its state when no longer listened to.
  • ProviderContainer.dispose, to destroy all providers associated with a ProviderContainer at once.
  • onCancel, a life-cycle for when all listeners of a provider are removed.

Implementation

@override
@mustCallSuper
void onDispose(void Function() listener) {
  _assertNotOutdated();
  if (!_mounted) {
    throw StateError('Cannot call onDispose after a provider was dispose');
  }
  _onDisposeListeners ??= [];
  _onDisposeListeners!.add(listener);
}