前言
小程序碰到奇怪的bug,需求是并排的几个下拉框触发后本地写入存储了同一个数据名name。
每次下拉写入后会进行后续函数处理,会发现读取的永远不是最新的。而且还是哪个下拉触发的就显示为那次写入下拉时的数据。
开发工具一切正常,真机会出现。
下拉第一次存储名name对应数据a,第二次存储名对应数据为b,相当于把name更新最新为了。预期中后续每次读取name都是后者才是。但实际会再点同一个下拉时显示a,再点后一次下拉位置时显示b。
处理
看到网上有描述wx.setStorage写入的数据,如果直接setData中使用会造成有时bug。但和这次似无关。 最后另类处理了。原因未知,只清楚写入时的数据获取时被干扰了。
let res = wx.getStorageSync('xx')
...
// 每次写入前重置下再写
wx.removeStorageSync('xx')
wx.setStorage({
key: 'everylist',
data: [...res, ...temp]
})