最近写微信小程序项目,项目过程中遇到一个问题,要改变全局js中的数据,并在另一个页面进行响应。
举个小例子吧!
比如说有一个这样的需求:需要把一个商品添加到购物车,我在商品首页的js中把所有商品数据push进app.js的一个数组中,然后在购物车里拿相应的商品信息,接下来要进行提交订单了。
重点来了!!!!!
现在提交订单的数据拿的是购物车的数据,我还是要从全局里拿,但是现在全局的数据是没有经过变化的数据,购物车商品的数量可能有增减的变化。
解决办法
在购物车数量加减的方法最后要把对应商品的数量给了全局对应商品的数量,然后再在订单页面拿全局js的数据
写个小例子吧
app.js
App({
data:{
globaldata: 1, // 用于测试的全局变量
}
})
操作页面js
const app = getApp();
Page({
data: {
fulldata: app.data, // 拿到全局变量
},
changeData: function(){
this.setData({
'fulldata.globaldata': 2
})
app.data.globaldata = 2;
}
})
app.data.globaldata = 2; 即可修改全局变量的值,也可在当前页面全局变量值动态更新。