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;

     

    }

     

  • 相关阅读:
    java 备忘
    C++ 命名规范 (转)
    代码格式规范
    using namespace 由来
    结构体数组 初始化(转)
    Java Servlet系列之Servlet生命周期
    进程,内存,管理 ps,pstree,top,free,vmstat,iftop,lsof,查看网速
    网络基础知识-
    进程作业管理2-kill,前后台作业,并行执行
    计划任务cron,date,时间同步ntp,chrony
  • 原文地址:https://www.cnblogs.com/pp-pping/p/12240931.html
Copyright © 2011-2022 走看看