ProviderContainer class

An object that stores the state of the providers and allows overriding the behavior of a specific provider.

If you are using Flutter, you do not need to care about this object (outside of testing), as it is implicitly created for you by ProviderScope.

  • @sealed


ProviderContainer({ProviderContainer? parent, List<Override> overrides = const [], List<ProviderObserver>? observers})
An object that stores the state of the providers and allows overriding the behavior of a specific provider.


debugCanModifyProviders ↔ (void Function()?)
A debug utility used by flutter_riverpod/hooks_riverpod to check if it is safe to modify a provider.
getter/setter pair
debugChildren List<ProviderContainer>
All the containers that have this container as parent.
no setter
depth int
How deep this ProviderContainer is in the graph of containers.
hashCode int
The hash code for this object.
no setterinherited
observers List<ProviderObserver>
The list of observers attached to this container.
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
scheduler → ProviderScheduler
The object that handles when providers are refreshed and disposed.
vsync → void Function(void task())
A function that controls the refresh rate of providers.
no setter
vsyncOverride ↔ (void Function(void task())?)
A way to override vsync, used by Flutter to synchronize a container with the widget tree.
getter/setter pair


debugReassemble() → void
Executes ProviderElementBase.debugReassemble on all the providers.
dispose() → void
Release all the resources associated with this ProviderContainer.
exists(ProviderBase<Object?> provider) bool
Determines whether a provider is initialized or not.
getAllProviderElements() Iterable<ProviderElementBase>
Traverse the ProviderElementBases associated with this ProviderContainer.
getAllProviderElementsInOrder() Iterable<ProviderElementBase>
Visit all nodes of the graph at most once, from roots to leaves.
hasStateReaderFor(ProviderListenable<Object?> provider) bool
An internal utility for checking if a ProviderContainer has a fast path for reading a provider.
invalidate(ProviderOrFamily provider) → void
Invalidates the state of the provider, causing it to refresh.
listen<State>(ProviderListenable<State> provider, void listener(State? previous, State next), {bool fireImmediately = false, void onError(Object error, StackTrace stackTrace)?}) ProviderSubscription<State>
Listen to a provider and call listener whenever its value changes.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
pump() Future<void>
Awaits for providers to rebuild/be disposed and for listeners to be notified.
read<Result>(ProviderListenable<Result> provider) → Result
Reads a provider without listening to it and returns the currently exposed value.
readProviderElement<State>(ProviderBase<State> provider) ProviderElementBase<State>
Reads the state of a provider, potentially creating it in the process.
refresh<State>(Refreshable<State> provider) → State
Forces a provider to re-evaluate its state immediately, and return the created value.
toString() String
A string representation of this object.
updateOverrides(List<Override> overrides) → void
Updates the list of provider overrides.


operator ==(Object other) bool
The equality operator.