你1.app.js
写全局js的地方,可以当成仓库来用使用方法在app.js中定义一个对象比如:
当你需要在其他页面使用时只需在需要使用的子页面中使用
const app = getApp();
通过app.globalData.key
key代表你在全局globalData中定义的变量
如果需要修改全局里定义的变量,不能直接在app.js通过生命周期去直接改globalData里的值,可以在操作全局值的js文件中的data里声明一个值,让他等于全局里你声明的值也就是app.globalData.key,之后你可以在你操作全局的js中变量的js文件中使用:
this.setData({
'你在data中定义的值(也就是你使用全局变量定义的值)': value
})
其中value为你想要修改的值
!!!但是这样是并不能修改全局里的值的,你修改的只是你操作全局变量js中从全局的app.js中拿过来你定义的值,要想修改全局的值必须使用
app.glovalData.key = value;
因为我们使用 this.setData赋值时,this的执行上下文是page本身,其setData也只能修改当前操作全局变量js中的js中data里面的值,这也就是我们为什么不能在页面中使用 this.setData修改全局变量的值的原因了。
this.setData({
'你在data中定义的值(也就是你使用全局变量定义的值)': value
})
在下面加一条app.glovalData.key = value;就可以了