Flutter是Google(全球顶级互联网科技公司)出品,后台够硬,毫无疑问Flutter即将或已经成为跨平台开发的主流,Flutter野心很大,不仅冲击着原生开发,而且很有可能会烧到Web前端。作为移动端开发者的你,如果不关注Flutter的话,实在说不过去啦!
Flutter跨组件状态共享(Provider)应用
一、效果图
界面初始化状态
分别点击两个按钮,数据会相应变化
2、Flutter中集Provider
在pubspec.yaml文件中添加Provider,当前版本1.1.0:
2、创建用户实体
商品实体
创建CartModel用来管理商品数据
我们将要共享的状态放到一个 CartModel类中,然后让它继承自ChangeNotifier,这样当共享的状态改变时,我们只需要调用notifyListeners() 来通知订阅者,然后由订阅者来重新构建InheritedProvider,达到刷新页面的目的。
3、使用ChangeNotifierProvider绑定数据
ChangeNotifierProvider调用value()方法,里面传出notifier(CartModel)和child,并初始化了默认数据。
4、使用Provider获取数据
5、使用Provider更新数据
通过调用 ChangeNotifier.notifyListeners 对 ChangeNotifier(CartModel) 进行监听,将其公开给它的子 Widget 并重建依赖项,从而刷新我们的UI。
以上已经完成单个页面状态的管理,如果你想实现跨组件,跨路由状态共享。你只要把ChangeNotifierProvider放在整个应用的Widget树的根上即可。
各个页面中直接这样使用即可。