乐趣区

flutter-全局状态管理provide

如果一个复杂的组件需要拆分成一个个小的 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!因为改变了树节点,不重启会报错,踩过坑

退出移动版