如果一个复杂的组件需要拆分成一个个小的widget,那么这几个widget之间怎么进行通信?
##flutter状态管理插件–providegithub地址:[https://pub.dev/packages/provide](https://pub.dev/packages/provide)
用法类似于vuex,步骤无疑就是 安装->全局注册->使用
,
而取值、赋值也是一样 通过状态管理器获取全局状态、通过状态管理器提交事务改变值
###基础用法:
- 在项目pubspec.yaml中添加依赖
provide: ^1.0.2
,此时最新版本为1.0.2,下载最新版本即可 - 项目根目录新建provide目录,创建一个计数的案例,如下:
- 在入口文件main.dart中修改main方法,注入状态管理,如下:
1
2
3
4
5
6void main() {
var counter = Counter();
var providers = Providers();
providers..provide(Provider<Counter>.value(counter));
runApp(ProviderNode(child: MyApp(),providers: providers,));
} - 获取值:
1
2
3
4Provide<Counter>(
builder: (context,child,counter) {
return Text('${counter.value}');
}, - 设置值:
1
2
3
4
5
6RaisedButton(
child: Text('递增+1'),
onPressed: () {
Provide.value<Counter>(context).increment();
},
),最后,项目一定要restart!因为改变了树节点,不重启会报错,踩过坑
我很可爱,请给我钱
- 本文链接:https://cong1223.github.io/2020/05/17/flutter-%E5%85%A8%E5%B1%80%E7%8A%B6%E6%80%81%E7%AE%A1%E7%90%86provide/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。
若没有本文 Issue,您可以使用 Comment 模版新建。
GitHub IssuesGitHub Discussions