Bumps [go_router](https://github.com/flutter/packages/tree/main/packages) from 7.1.1 to 8.0.0. <details> <summary>Commits</summary> <ul> <li><a href="010ba50128"><code>010ba50</code></a> [go_router] Refactors imperative APIs and browser history (<a href="https://github.com/flutter/packages/tree/main/packages/issues/4134">#4134</a>)</li> <li><a href="e37dd83c91"><code>e37dd83</code></a> [various] Add <code>http</code> 1.0 compatibility (<a href="https://github.com/flutter/packages/tree/main/packages/issues/4147">#4147</a>)</li> <li><a href="f1e628c07c"><code>f1e628c</code></a> [go_router_builder] Accept required parameters not in path (<a href="https://github.com/flutter/packages/tree/main/packages/issues/4039">#4039</a>)</li> <li><a href="d83ab7fe4e"><code>d83ab7f</code></a> [pigeon] Require analyzer 5.13.0, prepare for NamedType refactoring. (<a href="https://github.com/flutter/packages/tree/main/packages/issues/4127">#4127</a>)</li> <li><a href="a84b2c2ac3"><code>a84b2c2</code></a> [ci] Exclude maps unit tests on Windows (<a href="https://github.com/flutter/packages/tree/main/packages/issues/4152">#4152</a>)</li> <li><a href="da72219048"><code>da72219</code></a> remove unnecessary typed_data imports (<a href="https://github.com/flutter/packages/tree/main/packages/issues/4136">#4136</a>)</li> <li><a href="dba76d4e0e"><code>dba76d4</code></a> [local_auth_android] Bump androidx.fragment to 1.5.7 and androidx.core to 1.1...</li> <li><a href="3c3c980df1"><code>3c3c980</code></a> [google_maps] Endorses package:google_maps_flutter_web. (<a href="https://github.com/flutter/packages/tree/main/packages/issues/4124">#4124</a>)</li> <li><a href="81e3428752"><code>81e3428</code></a> [ci] Removes bespoke web scripts. (<a href="https://github.com/flutter/packages/tree/main/packages/issues/4129">#4129</a>)</li> <li><a href="9bf2dbcdfb"><code>9bf2dbc</code></a> [webview_flutter]: fix typo (<a href="https://github.com/flutter/packages/tree/main/packages/issues/4070">#4070</a>)</li> <li>Additional commits viewable in <a href="https://github.com/flutter/packages/commits/go_router-v8.0.0/packages">compare view</a></li> </ul> </details> <br /> [](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores) Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`. [//]: # (dependabot-automerge-start) [//]: # (dependabot-automerge-end) --- <details> <summary>Dependabot commands and options</summary> <br /> You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) </details> Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
provider_shopper
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.
Goals for this sample
- Show simple use of
Providerfor providing an immutable value to a subtree - Illustrate a simple state management approach using the ChangeNotifier class
- Show use of
ProxyProviderfor provided objects that depend on other provided objects
The important bits
lib/main.dart
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).
lib/models/*
This directory contains the model classes that are provided in main.dart. These classes
represent the app state.
lib/screens/*
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.
Questions/issues
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.