wx.getStorageSync取值出现问题
发布于 6 年前 作者 zhangqiang 6085 次浏览 来自 问答

使用wx.getStorageSync相同的方法,两次取出的长度不一样,请问是为什么呢?

第二次出现一个很奇怪的现象,显示是3个元素,但是长度变成1,求高手回答啊

10 回复
delete() {
let cartData = [{id:1,name:'one'},{id:2,name:'two'},{id:3,name:'three'},{id:4,name:'four'}]// 后端得到的数据
 let ids = [1,3] // 你需要删除的id对应
 let showData = cartData.filter((item) => {
let boll = ids.indexOf(item.id) // 查询对应的id是否在删除的数组里面
   return boll === -1 // 返回不在被删除的项
 }) // 最终视图层显示的数据
}

方便加微信吗?有些不懂可以请教下?

要删缓存里面的数据你用filter过滤掉被删除的就行了,再重新setStorage就行

基础库版本设置高一点试试呢

1.5.3 在线上基本已经没有了

明白了

其实这个逻辑是没错的,是因为 console.log  的是引用 所以日志显示不对了

试试这样调用呢

res = JSON.parse(JSON.stringify(wx.xxxxx))

clone下回包输出

我这个动作是清空购物车,通过传递数组的下标,把缓存里面的商品删除掉

你想要的就是要视图层不显示这删除的3个是吧,idxs是一个数组那很好解决,我给你写一段

ids匹配到的是3个下标,取出的数组也是对应这3个,那删除的结果应该是吧这3个数组都删除了,但是现在得到最后的结果是还剩一个数组,我想要的结果是清空的,图层不显示,不需要传后端

回到顶部