本地存储:wx.setStorage,wx.getStorage
(详细使用可以查看api—微信小程序中的数据存储)
比如说有A、B两个页面,要将A页面的数据传到B页面,
在A页面用wx.setStorage存储自己要传的数据
wx.setStorage({
key: "getAppData",//getAppData是我一个表单的数据
data: setAppInfo
})
在B页面显示传过来的数据,一开始我是写在onload里面的
onLoad: function(options) {
let that=this;
wx.getStorage({//获取A页面传过来的数据
key: 'getAppData',
success(res) {
console.log(res.data);// res.data A页面传过来的数据
that.setData({
getData: [{
id: 3,
name: res.data[0],
date: res.data[1],
time: res.data[2],
longtime: res.data[3],
tel: '15898620058',
price: res.data[4],
tips: res.data[5]
}]
})
// console.log(that.data.getData);
}
})
},
这样弄完后,我发现,页面数据不能随着本地存储的数据改变而改变,
如果是想要更新数据,只能重新编译,但是这样肯定不现实,
后来经过各种查询搜索,发现一个问题,
小程序中的onload页面加载,一个页面只加载一次,
所以后面不管怎么更改本地存储的数据,页面数据都不会同步更新
解决方法:将wx.getStorage写在onshow里面
onshow页面显示,每次打开页面都会都会重新调用一次
onShow: function() {
let that=this;
wx.getStorage({
key: 'getAppData',
success(res) {
console.log(res.data);
that.setData({
getData: [{
id: 3,
name: res.data[0],
date: res.data[1],
time: res.data[2],
longtime: res.data[3],
tel: '15898620058',
price: res.data[4],
tips: res.data[5]
}]
})
// console.log(that.data.getData);
}
})
}
总结:
- onload 一个页面只加载一次
- onshow 每次打开页面都会调用一次