微信小程序页面监听全局变量

194 阅读1分钟

app.js中代码:

App({
  //app 全局属性监听 globalData.loading
  watch: function (method) {
    let that = this
    let obj = that.globalData;
    Object.defineProperty(obj, "loadState", {
      configurable: true,
      enumerable: true,
      set: function (value) {
        method(value);
      },
      get: function (value) {
        return that.loadState;
      }
    })
  },
  //注意:改变globalData.loadState时,同时改变loadState
  loadState: false,
  //全局变量
  globalData: {
    loadState: false,
  }
})

page中代码:

const app = getApp();
Page({
   onLoad: function (options) {
     app.watch(this.watchBack)
   },
   //监听事件
   watchBack(value) {
     console.log(app.globalData)
  },
})