wx.setStorageSync缓存数组为空
发布于 6 年前 作者 tduan 3179 次浏览 来自 问答

add(item, counts) {

var cartData = this.getCartDataFromLocal();

if (!cartData) {

cartData = [];

}

var isHadInfo = this._isHasThatOne(item.id, cartData);

//新商品

if (isHadInfo.index == -1) {

item.counts = counts;

item.selectStatus = true;  //默认在购物车中为选中状态

cartData.push(item);

}

//已有商品

else {

cartData[isHadInfo.index].counts += counts;

}

this.execSetStorageSync(cartData);  //更新本地缓存

return cartData;

};

/*本地缓存 保存/更新*/

execSetStorageSync(data) {

wx.setStorageSync(this._storageKeyName, data);

};

/**

  * @return 缓存中购物车缓存信息

  */

getCartDataFromLocal(){

var res = wx.getStorageSync(this._storageKeyName);

if(!res){

res = [];

}

return res;

}

/**判断是否缓存内部购物车中是否存在相对应ID的商品

  * @params id 点击的商品Id号

  * @params arr 传入数组

  * @return result 返回包含index键位的数组

  */

_isHasThatOne(id, arr){

var item,result = { index: -1 };

for(let i=0;i<arr.length;i++){

item = arr[i];

if(id == item.id){

result={

index:i,

data:item

想请教大佬们为何此处缓存cartdata之后,storage内数组全为空;

望知晓的大佬留言原因,720°鞠躬感谢.jpg!!!

回到顶部