这是app.js
globalData: {
userInfo: null,
loginMode: true,
},
//app 全局属性监听
watch: function (method) {
var obj = this.globalData;
Object.defineProperty(obj, "userInfo", { //这里的 data 对应 上面 globalData 中的 data
configurable: true,
enumerable: true,
set: function (value) { //动态赋值,传递对象,为 globalData 中对应变量赋值
this._showPictureDetail = value.showPictureDetail;
this._pictureTime = value.pictureTime;
this._pictureAddress = value.pictureAddress;
method(value);
},
get: function () { //获取全局变量值,直接返回全部
return this.globalData;
}
})
}
这是组件监听
created() {
getApp().watch(this.watchBack)
},
watchBack: function (value) {
console.log(this) // 这里的this打印出来是undefined
this.setData({
loginMode: false
})
},
在组件创建全局变量,在attached函数赋值
var that_ = null that_ = this
放attached里运行试试
在页面中监听正常,只有在自定义组件中监听会出现问题