app.js
watchGlobalData:function(callback,propname,_this){
let slicepropname=propname.slice(1);
console.log(slicepropname);
let obj=this.globalData;
Object.defineProperty(obj,propname,{
configurable:true,
enumerable:true,
set:function(value){
console.log("set");
obj[slicepropname]=value;
callback(_this,value);
},
get:function(){
console.log("get");
return obj[slicepropname];
}
})
},
需要监听数据的page的js
app=app.watchGlobalData(app.publicJS.refreshApp,"_userName",this)||app;
app=app.watchGlobalData(app.publicJS.refreshApp,"_avatar",this)||app;
app=app.watchGlobalData(app.publicJS.refreshApp,"_isLogin",this)||app;
publicJS里的js(自己的公用js存放公用方法app.publicJS.refreshApp是此方法)
function refreshApp(_this, value) {
console.log('watch');
let app = getApp();
_this.setData({
app
})
return app;
}
给globalData赋值的page的js
app.globalData.adminInfo = res.data.data[0];
app.globalData._isLogin = true;
app.globalData._userName = res.data.data[0].username;
app.globalData._userId = res.data.data[0].id;
app.globalData._avatar = res.data.data[0].adminpicpath;