小程序组件中监听全局变量,方法中的this指向为undefined
发布于 4 年前 作者 chao86 307 次浏览 来自 问答

  这是app.js

globalData: {
    userInfonull,
    loginModetrue,
  },
  //app 全局属性监听
  watchfunction (method{
    var obj = this.globalData;
    Object.defineProperty(obj, "userInfo", {  //这里的 data 对应 上面 globalData 中的 data
      configurabletrue,
      enumerabletrue,
      setfunction (value{  //动态赋值,传递对象,为 globalData 中对应变量赋值
        this._showPictureDetail = value.showPictureDetail;
        this._pictureTime = value.pictureTime;
        this._pictureAddress = value.pictureAddress;
        method(value);
      },
      getfunction () {  //获取全局变量值,直接返回全部
        return this.globalData;
      }
    })
  }

这是组件监听

   created() {
    getApp().watch(this.watchBack)
  },   
  watchBackfunction (value{  
        console.log(this) // 这里的this打印出来是undefined
        this.setData({
          loginModefalse
        })
      },
2 回复

放attached里运行试试

在页面中监听正常,只有在自定义组件中监听会出现问题

回到顶部