在page中 我们使用 this.setData赋值时,this的执行上下文是page本身,其setData也只能修改当前page中data里面的值,这也就是我们为什么不能在页面中使用 this.setData修改全局变量的值的原因了。
解决方法如下:::
app.js:
App({
globaldata:{
z :1,// 用于测试的全局变量
}
})
page中:
const app = getApp();
Page({
data: {
fulldata: app.globaldata, // 拿到全局变量
},
changeData: function(){
app.globaldata.z= 2;
})
app.data.globaldata = 2; 即可修改全局变量的值,也可在当前页面全局变量值动态更新。