AutoDisposeStateProvider<State> class Null safety

A provider that expose a value which 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
Annotations

Constructors

AutoDisposeStateProvider(Create<State, AutoDisposeStateProviderRef<State>> create, {String? name, List<ProviderOrFamily>? dependencies, Family<dynamic, dynamic, ProviderBase>? from, Object? argument})
A provider that expose a value which can be modified from outside. [...]

Properties

allTransitiveDependencies List<ProviderOrFamily>?
All the dependencies of a provider and their dependencies too.
late, final, inherited
argument Object?
If this provider was created with the .family modifier, argument is variable used.
final, inherited
dependencies List<ProviderOrFamily>?
The list of providers that this provider potentially depends on. [...]
late, final, inherited
from Family<dynamic, dynamic, ProviderBase>?
If this provider was created with the .family modifier, from is the .family instance.
final, inherited
hashCode int
The hash code for this object. [...]
read-only, inherited
name String?
A custom label for providers. [...]
final, inherited
notifier AutoDisposeProviderBase<StateController<State>>
Obtains the StateController associated with this provider, but without listening to it. [...]
final
originProvider ProviderBase<StateController<State>>
The provider that will be refreshed when calling ProviderContainer.refresh and that will be overridden when passed to ProviderScope. [...]
read-only, inherited
runtimeType Type
A representation of the runtime type of the object.
read-only, inherited
state AutoDisposeProviderBase<StateController<State>>
Obtains the StateNotifier and also listens to the state, as opposed to notifier which will not listen to the state.
late, final

Methods

create(covariant AutoDisposeProviderElementBase<State> ref) → State
Initializes the state of a provider
override
createElement() AutoDisposeStateProviderElement<State>
An internal method that defines how a provider behaves.
override
noSuchMethod(Invocation invocation) → dynamic
Invoked when a non-existent method or property is accessed. [...]
inherited
overrideWithProvider(AutoDisposeStateProvider<State> value) Override
Overrides a provider with a value, ejecting the default behaviour. [...]
inherited
overrideWithValue(StateController<State> value) Override
Overrides a provider with a value, ejecting the default behaviour. [...]
inherited
select<Selected>(Selected selector(State value)) ProviderListenable<Selected>
Partially listen to a provider. [...]
inherited
toString() String
A string representation of this object. [...]
inherited
updateShouldNotify(State previousState, State newState) bool
Called when a provider is rebuilt. Used for providers to not notify their listeners if the exposed value did not change.
override

Operators

operator ==(Object other) bool
The equality operator. [...]
inherited

Constants

family → const AutoDisposeStateProviderFamilyBuilder
A group of providers that builds their value from an external parameter. [...]
AutoDisposeStateProviderFamilyBuilder()