背景:
在购物车页面拿不到店铺编号
问题:
是wx.getStorageSync 没有取到值导致的。
目前实现:
是获取后存下来wx.setStorageSync("merchantNo", userStoreInfo.data.merchantNo)
,
每次用的时候都是直接取的merchantNo: wx.getStorageSync("merchantNo")
。
解决:
1、直接写成异步获取,获取不到值的时候重新去后台取一次;2、在往缓存里放的时候同时保存到全局变量里,取值从全局或缓存里取,如果这个时候还拿不到数据就再异步请求重新赋值。
async goAgain(e) {
let params_ = {
orderNo: e.currentTarget.dataset.orderNo,
// merchantNo: wx.getStorageSync("merchantNo")
merchantNo: await this.getMerchantNo()
}
console.log('params_', params_)
oneMoreOrder(params_).then(res => {
if (res.code == 0) {
NCart.initNum()
wx.switchTab({
url: "/pages/shopping/cart"
});
} else {
wx.showToast({
title: res.msg,
duration: 2000,
icon: "none"
})
}
})
},
async getMerchantNo () {
try {
let value = wx.getStorageSync('merchantNo')
if (value) {
return value
}
let userStoreInfo = await getUserMerchant()
return userStoreInfo.data.merchantNo
} catch (e) {
console.log('eeee', e)
}
},
参考文章:
小程序wx.setStorageSync后,在用getStorageSync获取数据有时会获取不到
使用wx.getStorageSync取不到值为什么 ?
微信小程序-设置本地缓存和读取(同步,异步)