zoukankan      html  css  js  c++  java
  • flutter 状态保持之provide

    代码:

    1.

    import 'package:flutter/cupertino.dart';

    class Counter with ChangeNotifier{
    int num = 1;
    increase(){
    num ++ ;
    notifyListeners();//加入监听者模式
    }
    }
    2.
    void main() {
    var counter = Counter();
    var providers = Providers();
    providers..provide(Provider<Counter>.value(counter));//注册通知
    runApp(ProviderNode(child: MyApp(),providers: providers,));
    }
    3.
    child: Provide<Counter>(
    builder: (context,child,counte){
    return Text(//获取通知的数据
    '${counte.num}',
    style: Theme.of(context).textTheme.display1,
    );
    },
    )
    4.
    onPressed: (){//触发通知
    Provide.value<Counter>(context).increase();
    },
    总结:
     

    Provide 状态保持  类似于OC的通知

    1.在需要保持的数据方法中注册通知者

    xx 为方法名

    xx(){

    notifyListeners()

    }

    2.在main函数注册通知方法 

    yy 是方法对象名

    var yy = xx();

    var proders = Providers();

    proders..provide(Provide<xx>.value(yy));

    runApp(ProviederNode(child:MyApp(),provides:proders));

    3.使用通知数据

    zz 是任意的变量名 代表XX对象

    aa 是XX下的变量

    child:Provide<xx>(

    builder:(context,child,zz){

    return Text(

    ‘${zz.aa}

    )

    }

     

    )

    4.触发通知

    mm  是xx下的方法

    onPress:(){

    Provide.value<xx>(context).mm;

     

    }

     

  • 相关阅读:
    c语言输入一个字符串,统计其字母,数字和其他字符的个数,并以柱状图输出
    c语言中的#ifdef和#ifndef
    宏定义#define
    c语言中的register int
    android SDK 更新的几个网址
    android studio启动不进行fetching Android sdk compoment information
    android eclipse ADT 安装maven插件失败
    Jsp 的映射
    Jsp 九大隐式对象
    Jsp 乱码处理
  • 原文地址:https://www.cnblogs.com/pp-pping/p/12240931.html
Copyright © 2011-2022 走看看