StateProvider<T> class
A provider that exposes a value that can be modified from outside.
It can be useful for very simple states, like a filter or the currently selected item – which can then be combined with other providers or accessed in multiple screens.
The following code shows a list of products, and allows selecting a product by tapping on it.
final selectedProductIdProvider = StateProvider<String?>((ref) => null);
final productsProvider = StateNotifierProvider<ProductsNotifier, List<Product>>((ref) => ProductsNotifier());
Widget build(BuildContext context, WidgetRef ref) {
final List<Product> products = ref.watch(productsProvider);
final selectedProductId = ref.watch(selectedProductIdProvider);
return ListView(
children: [
for (final product in products)
GestureDetector(
onTap: () => ref.read(selectedProductIdProvider.notifier).state = product.id,
child: ProductItem(
product: product,
isSelected: selectedProductId.state == product.id,
),
),
],
);
}
- Inheritance
-
- Object
- ProviderOrFamily
- ProviderBase<
T> - StateProvider
- Mixed-in types
- Available extensions
Constructors
-
StateProvider(T _createFn(StateProviderRef<
T> ref), {String? name, Iterable<ProviderOrFamily> ? dependencies, @Deprecated('Will be removed in 3.0.0') Family<Object?> ? from, @Deprecated('Will be removed in 3.0.0') Object? argument, @Deprecated('Will be removed in 3.0.0') DebugGetCreateSourceHash? debugGetCreateSourceHash}) - A provider that exposes a value that can be modified from outside.
-
StateProvider.internal(T _createFn(StateProviderRef<
T> ref), {required String? name, required Iterable<ProviderOrFamily> ? dependencies, required Iterable<ProviderOrFamily> ? allTransitiveDependencies, required DebugGetCreateSourceHash? debugGetCreateSourceHash, Family<Object?> ? from, Object? argument}) - An implementation detail of Riverpod
Properties
-
allTransitiveDependencies
→ Iterable<
ProviderOrFamily> ? -
All the dependencies of a provider and their dependencies too.
finalinherited
- argument → Object?
-
If this provider was created with the
.family
modifier, argument is the variable that was used.finalinherited - debugGetCreateSourceHash → DebugGetCreateSourceHash?
-
A debug-only fucntion for obtaining a hash of the source code of the
initialization function.
finalinherited
-
dependencies
→ Iterable<
ProviderOrFamily> ? -
The list of providers that this provider potentially depends on.
finalinherited
-
from
→ Family<
Object?> ? -
If this provider was created with the
.family
modifier, from is the.family
instance.finalinherited - hashCode → int
-
The hash code for this object.
no setterinherited
- name → String?
-
A custom label for providers.
finalinherited
-
notifier
→ AlwaysAliveRefreshable<
StateController< T> > -
latefinal
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
-
state
→ AlwaysAliveRefreshable<
StateController< T> > -
latefinal
Methods
-
addListener(
Node node, void listener(T? previous, T next), {required void onError(Object error, StackTrace stackTrace)?, required void onDependencyMayHaveChanged()?, required bool fireImmediately}) → ProviderSubscription< T> -
Starts listening to this transformer
inherited
-
createElement(
) → StateProviderElement< T> -
An internal method that defines how a provider behaves.
override
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
overrideWith(
Create< T, StateProviderRef< create) → OverrideT> > - Override the provider with a new initialization function.
-
overrideWithProvider(
ProviderType override) → Override -
Available on ProviderType, provided by the OverrideWithProviderExtension extension
Overrides a provider with a value, ejecting the default behaviour. -
read(
Node node) → T -
Obtains the result of this provider expression without adding listener.
inherited
-
select<
Selected> (Selected selector(T value)) → AlwaysAliveProviderListenable< Selected> -
Partially listen to a provider.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Constants
- autoDispose → const AutoDisposeStateProviderBuilder
- Marks the provider as automatically disposed when no longer listened to.
- family → const StateProviderFamilyBuilder
- A group of providers that builds their value from an external parameter.