如果一个复杂的组件需要拆分成一个个小的widget,那么这几个widget之间怎么进行通信?
flutter状态管理插件--provide
github地址:[https://pub.dev/packages/provide](https://pub.dev/packages/provide)
用法类似于vuex,步骤无疑就是 安装->全局注册->使用
,
而取值、赋值也是一样 通过状态管理器获取全局状态、通过状态管理器提交事务改变值
基础用法:
- 在项目pubspec.yaml中添加依赖
provide: ^1.0.2
,此时最新版本为1.0.2,下载最新版本即可 - 项目根目录新建provide目录,创建一个计数的案例,如下:
- 在入口文件main.dart中修改main方法,注入状态管理,如下:
void main() {
var counter = Counter();
var providers = Providers();
providers..provide(Provider<Counter>.value(counter));
runApp(ProviderNode(child: MyApp(),providers: providers,));
}
- 获取值:
Provide<Counter>(
builder: (context,child,counter) {
return Text('${counter.value}');
},
- 设置值:
RaisedButton(
child: Text('递增+1'),
onPressed: () {
Provide.value<Counter>(context).increment();
},
),
最后,项目一定要restart!因为改变了树节点,不重启会报错,踩过坑
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。