flutter_sub_provider library

Sane Provider-Provider dependencies with flutter_sub.

Classes

ChangeNotifierProvider<T extends ChangeNotifier?>
Listens to a ChangeNotifier, expose it to its descendants and rebuilds dependents whenever ChangeNotifier.notifyListeners is called.
ChangeNotifierProxyProvider<T, R extends ChangeNotifier?>
A ChangeNotifierProvider that builds and synchronizes a ChangeNotifier with external values.
ChangeNotifierProxyProvider0<R extends ChangeNotifier?>
A ChangeNotifierProvider that builds and synchronizes a ChangeNotifier with external values.
ChangeNotifierProxyProvider2<T, T2, R extends ChangeNotifier?>
A ChangeNotifierProvider that builds and synchronizes a ChangeNotifier with external values.
ChangeNotifierProxyProvider3<T, T2, T3, R extends ChangeNotifier?>
A ChangeNotifierProvider that builds and synchronizes a ChangeNotifier with external values.
ChangeNotifierProxyProvider4<T, T2, T3, T4, R extends ChangeNotifier?>
A ChangeNotifierProvider that builds and synchronizes a ChangeNotifier with external values.
ChangeNotifierProxyProvider5<T, T2, T3, T4, T5, R extends ChangeNotifier?>
A ChangeNotifierProvider that builds and synchronizes a ChangeNotifier with external values.
ChangeNotifierProxyProvider6<T, T2, T3, T4, T5, T6, R extends ChangeNotifier?>
A ChangeNotifierProvider that builds and synchronizes a ChangeNotifier with external values.
Consumer<T>
Obtains Provider<T> from its ancestors and passes its value to builder.
Consumer2<A, B>
Obtains Provider<T> from its ancestors and passes its value to builder.
Consumer3<A, B, C>
Obtains Provider<T> from its ancestors and passes its value to builder.
Consumer4<A, B, C, D>
Obtains Provider<T> from its ancestors and passes its value to builder.
Consumer5<A, B, C, D, E>
Obtains Provider<T> from its ancestors and passes its value to builder.
Consumer6<A, B, C, D, E, F>
Obtains Provider<T> from its ancestors and passes its value to builder.
DeferredInheritedProvider<T, R>
An InheritedProvider where the object listened is not the object emitted.
FutureProvider<T>
Listens to a Future and exposes its result to child and its descendants.
InheritedContext<T>
A BuildContext associated to an InheritedProvider.
InheritedProvider<T>
A generic implementation of an InheritedWidget.
ListenableProvider<T extends Listenable?>
Listens to a Listenable, expose it to its descendants and rebuilds dependents whenever the listener emits an event.
ListenableProxyProvider<T, R extends Listenable?>
A variation of ListenableProvider that builds its value from values obtained from other providers.
ListenableProxyProvider0<R extends Listenable?>
A variation of ListenableProvider that builds its value from values obtained from other providers.
ListenableProxyProvider2<T, T2, R extends Listenable?>
A variation of ListenableProvider that builds its value from values obtained from other providers.
ListenableProxyProvider3<T, T2, T3, R extends Listenable?>
A variation of ListenableProvider that builds its value from values obtained from other providers.
ListenableProxyProvider4<T, T2, T3, T4, R extends Listenable?>
A variation of ListenableProvider that builds its value from values obtained from other providers.
ListenableProxyProvider5<T, T2, T3, T4, T5, R extends Listenable?>
A variation of ListenableProvider that builds its value from values obtained from other providers.
ListenableProxyProvider6<T, T2, T3, T4, T5, T6, R extends Listenable?>
A variation of ListenableProvider that builds its value from values obtained from other providers.
MultiProvider
A provider that merges multiple providers into a single linear widget tree. It is used to improve readability and reduce boilerplate code of having to nest multiple layers of providers.
Provider<T>
A Provider that manages the lifecycle of the value it provides by delegating to a pair of Create and Dispose.
ProviderBinding
ProxyProvider<T, R>
A provider that builds a value based on other providers.
ProxyProvider0<R>
A provider that builds a value based on other providers.
ProxyProvider2<T, T2, R>
A provider that builds a value based on other providers.
ProxyProvider3<T, T2, T3, R>
A provider that builds a value based on other providers.
ProxyProvider4<T, T2, T3, T4, R>
A provider that builds a value based on other providers.
ProxyProvider5<T, T2, T3, T4, T5, R>
A provider that builds a value based on other providers.
ProxyProvider6<T, T2, T3, T4, T5, T6, R>
A provider that builds a value based on other providers.
ReassembleHandler
If you need your provider to be notified when 'Hot Reload' occurs, use this class
Selector<A, S>
An equivalent to Consumer that can filter updates by selecting a limited amount of values and prevent rebuild if they don't change.
Selector0<T>
A base class for custom Selector.
Selector2<A, B, S>
An equivalent to Consumer that can filter updates by selecting a limited amount of values and prevent rebuild if they don't change.
Selector3<A, B, C, S>
An equivalent to Consumer that can filter updates by selecting a limited amount of values and prevent rebuild if they don't change.
Selector4<A, B, C, D, S>
An equivalent to Consumer that can filter updates by selecting a limited amount of values and prevent rebuild if they don't change.
Selector5<A, B, C, D, E, S>
An equivalent to Consumer that can filter updates by selecting a limited amount of values and prevent rebuild if they don't change.
Selector6<A, B, C, D, E, F, S>
An equivalent to Consumer that can filter updates by selecting a limited amount of values and prevent rebuild if they don't change.
StreamProvider<T>
Listens to a Stream and exposes its content to child and descendants.
SubChangeNotifierProvider<T, R extends ChangeNotifier>
Manages a ChangeNotifier and exposes it to its descendants. Allows for smart Provider-Provider dependencies.
SubChangeNotifierProvider0<R extends ChangeNotifier>
Manages a ChangeNotifier and exposes it to its descendants. Allows for smart Provider-Provider dependencies.
SubChangeNotifierProvider2<T, T2, R extends ChangeNotifier>
Manages a ChangeNotifier and exposes it to its descendants. Allows for smart Provider-Provider dependencies.
SubChangeNotifierProvider3<T, T2, T3, R extends ChangeNotifier>
Manages a ChangeNotifier and exposes it to its descendants. Allows for smart Provider-Provider dependencies.
SubChangeNotifierProvider4<T, T2, T3, T4, R extends ChangeNotifier>
Manages a ChangeNotifier and exposes it to its descendants. Allows for smart Provider-Provider dependencies.
SubChangeNotifierProvider5<T, T2, T3, T4, T5, R extends ChangeNotifier>
Manages a ChangeNotifier and exposes it to its descendants. Allows for smart Provider-Provider dependencies.
SubChangeNotifierProvider6<T, T2, T3, T4, T5, T6, R extends ChangeNotifier>
Manages a ChangeNotifier and exposes it to its descendants. Allows for smart Provider-Provider dependencies.
SubFutureProvider<T>
Listens to a Future and exposes its result to child and its descendants.
SubListenableProvider<T, R extends Listenable>
Manages a Listenable and exposes it to its descendants. Allows for smart Provider-Provider dependencies.
SubListenableProvider0<R extends Listenable>
Manages a Listenable and exposes it to its descendants. Allows for smart Provider-Provider dependencies.
SubListenableProvider2<T, T2, R extends Listenable>
Manages a Listenable and exposes it to its descendants. Allows for smart Provider-Provider dependencies.
SubListenableProvider3<T, T2, T3, R extends Listenable>
Manages a Listenable and exposes it to its descendants. Allows for smart Provider-Provider dependencies.
SubListenableProvider4<T, T2, T3, T4, R extends Listenable>
Manages a Listenable and exposes it to its descendants. Allows for smart Provider-Provider dependencies.
SubListenableProvider5<T, T2, T3, T4, T5, R extends Listenable>
Manages a Listenable and exposes it to its descendants. Allows for smart Provider-Provider dependencies.
SubListenableProvider6<T, T2, T3, T4, T5, T6, R extends Listenable>
Manages a Listenable and exposes it to its descendants. Allows for smart Provider-Provider dependencies.
SubProvider<T, R>
Manages a Value T and exposes it to its descendants. Allows for smart Provider-Provider dependencies.
SubProvider0<R>
Manages a Value T and exposes it to its descendants. Allows for smart Provider-Provider dependencies.
SubProvider2<T, T2, R>
Manages a Value T and exposes it to its descendants. Allows for smart Provider-Provider dependencies.
SubProvider3<T, T2, T3, R>
Manages a Value T and exposes it to its descendants. Allows for smart Provider-Provider dependencies.
SubProvider4<T, T2, T3, T4, R>
Manages a Value T and exposes it to its descendants. Allows for smart Provider-Provider dependencies.
SubProvider5<T, T2, T3, T4, T5, R>
Manages a Value T and exposes it to its descendants. Allows for smart Provider-Provider dependencies.
SubProvider6<T, T2, T3, T4, T5, T6, R>
Manages a Value T and exposes it to its descendants. Allows for smart Provider-Provider dependencies.
SubStreamProvider<T>
Listens to a Stream and exposes its content to child and descendants.
ValueListenableProvider<T>
Listens to a ValueListenable and exposes its current value.

Extensions

ReadContext on BuildContext
Exposes the read method.
SelectContext on BuildContext
Adds a select method on BuildContext.
WatchContext on BuildContext
Exposes the watch method.

Typedefs

Create<T> = T Function(BuildContext context)
A function that creates an object of type T.
DeferredStartListening<T, R> = VoidCallback Function(InheritedContext<R?> context, void setState(R value), T controller, R? value)
A callback used to handle the subscription of controller.
Dispose<T> = void Function(BuildContext context, T value)
A function that disposes an object of type T.
ErrorBuilder<T> = T Function(BuildContext context, Object? error)
A callback used to build a valid value from an error.
Locator = T Function<T>()
A generic function that can be called to read providers, without having a reference on BuildContext.
ProviderBuilder<R> = Widget Function(BuildContext context, R value, Widget child)
ProxyProviderBuilder<T, R> = R Function(BuildContext context, T value, R? previous)
ProxyProviderBuilder2<T, T2, R> = R Function(BuildContext context, T value, T2 value2, R? previous)
ProxyProviderBuilder3<T, T2, T3, R> = R Function(BuildContext context, T value, T2 value2, T3 value3, R? previous)
ProxyProviderBuilder4<T, T2, T3, T4, R> = R Function(BuildContext context, T value, T2 value2, T3 value3, T4 value4, R? previous)
ProxyProviderBuilder5<T, T2, T3, T4, T5, R> = R Function(BuildContext context, T value, T2 value2, T3 value3, T4 value4, T5 value5, R? previous)
ProxyProviderBuilder6<T, T2, T3, T4, T5, T6, R> = R Function(BuildContext context, T value, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, R? previous)
ShouldRebuild<T> = bool Function(T previous, T next)
Used by providers to determine whether dependents needs to be updated when the value exposed changes
StartListening<T> = VoidCallback Function(InheritedContext<T?> element, T value)
A callback used to start the listening of an object and return a function that cancels the subscription.
UpdateShouldNotify<T> = bool Function(T previous, T current)
A function that returns true when the update from previous to current should notify listeners, if any.

Exceptions / Errors

ProviderNotFoundException
The error that will be thrown if Provider.of fails to find a Provider as an ancestor of the BuildContext used.
ProviderNullException
Called Provider.of<T> instead of Provider.of<T?> but the provider returned null.