AutoDisposeStateProvider<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

Constructors

AutoDisposeStateProvider(T _createFn(AutoDisposeStateProviderRef<T> ref), {String? name, Iterable<ProviderOrFamily>? dependencies})
A provider that exposes a value that can be modified from outside.
AutoDisposeStateProvider.internal(T _createFn(AutoDisposeStateProviderRef<T> ref), {required String? name, required Iterable<ProviderOrFamily>? dependencies, required Iterable<ProviderOrFamily>? allTransitiveDependencies, required DebugGetCreateSourceHash? debugGetCreateSourceHash, Family? 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?
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 Refreshable<StateController<T>>
latefinal
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

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() AutoDisposeStateProviderElement<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, AutoDisposeStateProviderRef<T>> create) Override
Override the provider with a new initialization function.
read(Node node) → T
Obtains the result of this provider expression without adding listener.
inherited
select<Selected>(Selected selector(T value)) ProviderListenable<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

family → const AutoDisposeStateProviderFamily<R, Arg> Function<R, Arg>(R _createFn(AutoDisposeStateProviderRef<R> ref, Arg arg), {Iterable<ProviderOrFamily>? dependencies, String? name})
A group of providers that builds their value from an external parameter.