FlutterFlutter

Flutter Provide状态管理基础

2019-03-19  本文已影响322人  zda123000

Provide是Google官方推出的状态管理模式。官方地址为:https://github.com/google/flutter-provide

现在Flutter的状态管理方案很多,redux、bloc、state、Provide。

要实现一个页面状态改变之后,另一个页面状态也随之改变。效果图如下:

效果图
1、添加依赖
dependencies:
  provide: ^1.0.2
2、创建Provide

这个类似于创建一个state,但是为了跟State区分,我们叫创建Provide。新建一个provide文件夹,然后再里边新建一个counter.dart 文件.代码如下:

import 'package:flutter/material.dart';

class  Counter with ChangeNotifier {
  int value = 0;
  increment() {
    value++;
    notifyListeners();
  }
}
3、将状态放入顶层
void main() {
  var counter =Counter();
  var providers = Providers();

  providers..provide(Provider<Counter>.value(counter));

  runApp(
    ProviderNode(
      child: MyApp(),
      providers: providers,
    )
  );
}
4、获取状态
class Number extends StatelessWidget {

  @override
  Widget build(BuildContext context) {
    return Container(
      margin: EdgeInsets.only(top: 200.0),
      child: Provide<Counter>(
        builder: (context, child,counter) {
          return Text('${counter.value}',style: TextStyle(fontSize: 30.0),);
        },
      )
    );
  }
}

builder方法接收三个参数

5、修改状态
Widget build(BuildContext context) {
    return Container(
      child: Container(
        child: RaisedButton(
          onPressed: () {
            Provide.value<Counter>(context).increment();
          },
          child: Text('增加'),
        ),
      ),
    );
  }

项目地址

上一篇下一篇

猜你喜欢

热点阅读