zoukankan      html  css  js  c++  java
  • 微信小程序在其他页面监听globalData中值的变化(转载)

    微信小程序在其他页面监听globalData中值的变化(转载)

    由于要监听到globalData中的值的变化,所以一般要在globalData改变时回调一个方法。例如我们监听一个name属性,大致代码如下:

    // app.js中
    //app.js
    App({
      onLaunch: function () {
        let that = this
        // 在这里用定时器模拟网络请求的过程
        setTimeout(function(){
          that.globalData.name = 'pxh'
        },3000) 
      },
     // 这里这么写,是要在其他界面监听,而不是在app.js中监听,而且这个监听方法,需要一个回调方法。
      watch:function(method){
        var obj = this.globalData;
        Object.defineProperty(obj,"name", {
          configurable: true,
          enumerable: true,
          set: function (value) {
            this._name = value;
            console.log('是否会被执行2')
            method(value);
          },
          get:function(){
          // 可以在这里打印一些东西,然后在其他界面调用getApp().globalData.name的时候,这里就会执行。
            return this._name
          }
        })
      },
      globalData: {
        userInfo: null,
        _name:'msr'
      }
    })
    
    
    // 然后在index.js中的声明周期中实现
    onLoad: function (options) {
        let that = this;
        getApp().watch(that.watchBack)
      },
      watchBack: function (name){
        console.log(22222);
        console.log('this.name==' + name)
      }
    
  • 相关阅读:
    ASP.NET 中Request.QueryString 中的key
    我要爱死这个markdown 了
    WindowsPhone 8 开发 之 本地数据库应用
    java对象详解
    java内存分析
    java 成长之路
    springboot hessian
    zabbix 3.0 安装 ubuntu环境
    dubbo+zookeeper简单环境搭建
    大型网站及架构演进过程
  • 原文地址:https://www.cnblogs.com/wjw1014/p/12691827.html
Copyright © 2011-2022 走看看