A Flutter sample app that shows a state management approach using the Provider package. This is the app discussed in the Simple app state management section of flutter.dev.
- Show simple use of
Provider
for providing an immutable value to a subtree - Illustrate a simple state management approach using the ChangeNotifier class
- Show use of
ProxyProvider
for provided objects that depend on other provided objects
Here the app sets up objects it needs to track state: a catalog and a shopping cart. It builds
a MultiProvider
to provide both objects at once to widgets further down the tree.
The CartModel
instance is provided using a ChangeNotifierProxyProvider
, which combines
two types of functionality:
- It will automatically subscribe to changes in
CartModel
(if you only want this functionality simply useChangeNotifierProvider
). - It takes the value of a previously provided object (in this case,
CatalogModel
, provided just above), and uses it to build the value ofCartModel
(if you only want this functionality, simply useProxyProvider
).
This directory contains the model classes that are provided in main.dart
. These classes
represent the app state.
This directory contains widgets used to construct the two screens of the app: the catalog and
the cart. These widgets have access to the current state of both the catalog and the cart
via Provider.of
.
If you have a general question about Provider, the best places to go are:
If you run into an issue with the sample itself, please file an issue in the main Flutter repo.