[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KODLf3V0-1651125099575)(https://user-gold-cdn.xitu.io/2019/2/20/1690b552df50d005?imageView2/0/w/1280/h/960/ignore-error/1)]
- 实际添加请参考:[pub.dartlang.org/packages/pr…](()
- 由于版本冲突添加失败请参考: [juejin.im/post/684490…](()
第二步:创建Model
这里实际上它承担了State的职责,但是为了和官方的State区分所以叫做model。
import ‘package:flutter/material.dart’;
class Counter with ChangeNotifier{
int value = 0;
increment(){
value++;
notifyListeners();
}
}
这里我们可以看到,数据和操作数据的方法都在model中,我们可以很清晰的把业务分离出来。
对比Scoped_model可以发现,Provide模式中model不再需要继承Model类,只需要实现Listenable,我们这里混入ChangeNotifier,可以不用管理听众。
通过 notifyListeners 我们可以通知听众刷新。
第三步:将状态放入顶层
void main() {
var counter = Counter();
var providers =