provider 3.2.0 provider: ^3.2.0 copied to clipboard
A mixture between dependency injection and state management, built with widgets for widgets.
3.2.0 #
- Deprecated "builder" of providers in favor to "create"
- Deprecated "builder"/"initialBuilder" 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