provider 4.0.0 provider: ^4.0.0 copied to clipboard
A mixture between dependency injection and state management, built with widgets for widgets.
4.0.0 #
Selector
now deeply compares collections by default, and offers ashouldRebuild
to customize the rebuild behavior.- renamed
ProviderNotFoundError
toProviderNotFoundException
. This allows callingProvider.of
inside atry/catch
without triggering a warning. - update provider to work with Flutter 1.12.1
- The creation and listening of objects using providers is now performed lazily. This means that objects are created the first time the value is read instead of the first time the provider is mounted.
- The
listen
argument ofProvider.of
is now automatically inferred. It is no longer necessary to passlisten: false
when callingProvider.of
outside of the widget tree. - renamed
initialBuilder
&builder
of*ProxyProvider
tocreate
&update
- renamed
builder
of*Provider
tocreate
- added a
*ProxyProvider0
variant
3.2.0 #
- Deprecated "builder" of providers in favor to "create"
- Deprecated "initialBuilder"/"builder" of proxy providers in favor of respectively "create" and "update"
3.1.0 #
- Added
Selector
, similar toConsumer
but can filter unneeded updates - improved the overall documentation
- fixed a bug where
ChangeNotifierProvider.value
didn't update dependents when theChangeNotifier
instance changed. Consumer
can now be used insideMultiProvider
MultiProvider( providers: [ Provider(builder: (_) => Foo()), Consumer<Foo>( builder: (context, foo, child) => Provider.value(value: foo.bar, child: child), ) ], );
3.0.0 #
breaking (see the readme for migration steps): #
Provider
now throws if used with aListenable
/Stream
. This can be disabled by settingProvider.debugCheckInvalidValueType
tonull
.- The default constructor of
StreamProvider
has now builds aStream
instead ofStreamController
. The previous behavior has been moved toStreamProvider.controller
. - All
XXProvider.value
constructors now usevalue
as parameter name. - Added
FutureProvider
, which takes a future and updates dependents when the future completes. - Providers can no longer be instantiated using
const
constructors.
non-breaking: #
- Added
ProxyProvider
,ListenableProxyProvider
, andChangeNotifierProxyProvider
. These providers allows building values that depends on other providers, without loosing reactivity or manually handling the state. - Added
DelegateWidget
and a few related classes to help building custom providers. - Exposed the internal generic
InheritedWidget
to help building custom providers.
2.0.1 #
- fix a bug where
ListenableProvider.value
/ChangeNotifierProvider.value
/StreamProvider.value
/ValueListenableProvider.value
subscribed/unsubscribed to their respective object too often - fix a bug where
ListenableProvider.value
/ChangeNotifierProvider.value
may rebuild too often or skip some.
2.0.0 #
Consumer
now takes an optionalchild
argument for optimization purposes.- merged
Provider
andStatefulProvider
- added a "builder" constructor to
ValueListenableProvider
- normalized providers constructors such that the default constructor is a "builder",
and offer a
value
named constructor.
1.6.1 #
Provider.of<T>
now crashes with aProviderNotFoundException
when noProvider<T>
are found in the ancestors of the context used.
1.6.0 #
- new:
ChangeNotifierProvider
, similar to scoped_model that exposesChangeNotifer
subclass and rebuilds dependents only whennotifyListeners
is called. - new:
ValueListenableProvider
, a provider that rebuilds whenever the value passed to aValueNotifier
change.
1.5.0 #
- new: Add
Consumer
with up to 6 parameters. - new:
MultiProvider
, a provider that makes a tree of provider more readable - new:
StreamProvider
, a stream that exposes to its descendants the current value of aStream
.
1.4.0 #
- Reintroduced
StatefulProvider
with a modified prototype. The second argument ofvalueBuilder
anddidChangeDependencies
have been removed. AndvalueBuilder
is now called only once for the whole life-cycle ofStatefulProvider
.
1.3.0 #
- Added
Consumer
, useful when we need to both expose and consume a value simultaneously.
1.2.0 #
- Added:
HookProvider
, aProvider
that creates its value from aHook
. - Deprecated
StatefulProvider
. Either make aStatefulWidget
or useHookProvider
. - Integrated the widget inspector, so that
Provider
widget shows the current value.
1.1.1 #
- add
didChangeDependencies
callback to allow updating the value based on anInheritedWidget
- add
updateShouldNotify
method to bothProvider
andStatefulProvider
1.1.0 #
onDispose
has been added toStatefulProvider
BuildContext
is now passed tovalueBuilder
callback