Provider API docs

A Provider that manages the lifecycle of the value it provides by delegating to a pair of [create] and [dispose].

It is usually used to avoid making a StatefulWidget for something trivial, such as instantiating a BLoC.

Constructor

Provider({
  required T Function() create,
  DisposeValue<T>? dispose,
  bool lazy = true,
  Object? id,
})

Provider is the equivalent of a State.initState combined with State.dispose. create is called only once in State.initState. The create callback is lazily called. It is called the first time the value is read, instead of the first time Provider is inserted in the widget tree. This behavior can be disabled by passing lazy false.

You can pass an optional id to have multiple providers of the same type.

The dispose method will not be called if the provider is a SignalBase, because they are disposed automatically when there aren't any subscribers.