provider 3.0.0 provider: ^3.0.0 copied to clipboard
A dependency injection system built with widgets for widgets. provider is mostly syntax sugar for InheritedWidget, to make common use-cases straightforward.
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