如果一个复杂的组件需要拆分成一个个小的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方法,注入状态管理,如下:
    1
    2
    3
    4
    5
    6
    void main() {
    var counter = Counter();
    var providers = Providers();
    providers..provide(Provider<Counter>.value(counter));
    runApp(ProviderNode(child: MyApp(),providers: providers,));
    }
  • 获取值:
    1
    2
    3
    4
    Provide<Counter>(
    builder: (context,child,counter) {
    return Text('${counter.value}');
    },
  • 设置值:
    1
    2
    3
    4
    5
    6
    RaisedButton(
    child: Text('递增+1'),
    onPressed: () {
    Provide.value<Counter>(context).increment();
    },
    ),

    最后,项目一定要restart!因为改变了树节点,不重启会报错,踩过坑