问题:解决a页面数据变化,b页面实时响应的问题
解决办法:
在app。js中定义有一个全局变量,对这个变量进行监听
globalData: {
APIBaseURL: "", // api基础URL
imageBaseURL: "", // 图片基础URL
socketURL: "", // socket基础URL
authorization: "", // 登录态
account: '',
recondNum:-1,
},
//app 全局属性监听
watch: function (method) {
var obj = this.globalData;
Object.defineProperty(this, "globalData", { //这里的 globalData对应 上面 globalData
configurable: true,
enumerable: true,
set: function (item) { //动态赋值,传递对象,为 globalData 中对应变量赋值
obj.recondNum = item.recondNum;
method(value);
},
get: function () { //获取全局变量值,直接返回全部
return obj;
}
})
},
2.在a页面中将获取到的数据变量赋值给定义的全局变量
//引入全局
const app = getApp()
//变量赋值
app.globalData = {
'recondNum': view
}
3.在b页面获取定义的全局变量值
//在data中赋值
data: {
recondNum:app.globalData.recondNum,
},
//watch监听回调方法
watchNum: function (val) { //这里的val 就是 app.js 中 watch 方法中的 set, 返回整个 globalData
this.setData({
recondNum: val.recondNum
});
},
//在onLoad中注册watch监听
app.watch(this.watchNum)