介绍一下数据与Widget之间传递,数据改变-->触发Widget刷新
1.0 所需工具
Provider
2.0 Provider
Provider 会在Widget和Model之间建立监听,以确保数据发生变化时刷新Widget
3.0 必要步骤:
Model 要继承ChangeNotifier
Widget要监听Model数据变化
Provider 是flutter推荐使用的状态管理工具,具体原理这里不展开分析,下面介绍一下如何快速使用,达到一个真实业务的场景.
4.0 Model创建
// 重要: model必须继承ChangeNotifier
class TestClass with ChangeNotifier {
var count = 1;
action() {
++count;
//数据变化后腰通过 notifyListeners() 通知所有监听者
notifyListeners();
}
}
4.1 监听Model
Model监听有两种方式
通过addListener方式
通过Provider.of(context)
4.1.1 通过 addListener 监听数据改变
当数据改变并且调用 notifyListeners() 这里会收到回调
model.addListener(() {
//Do something
});
4.1.2 通过 Provider.of(context) 方式监听
这里看到在build方法中我们获取Provider传入的Model.并没有调用addListen