这种情况往往是因为 wx.navigateTo 或者其他路由API和 wx.setStorageSync 合并使用的结果
例如
handleConfirm(e){
const {index}=e.currentTarget.dataset;
wx.navigateTo({
url:"/pages/.../...",
success:res=>{ wx.setStorageSync('Index',index)}
})
}
这个时候错误就出现了 因为如果我们需要这个index 在onLoad事件中使用,可能会出现缓存中数据还没有存入,但是onLoad事件已经完成 ,在开发者工具中一般不会出现这个问题,在开发者工具中 缓存会比onLoad先完成,真机调试中onLoad会比setStorageSync先完成
改法
handleConfirm(e){
const {index}=e.currentTarget.dataset;
wx.navigateTo({
url:"/pages/.../..."
})
wx.setStorageSync('Index',index)
}
总结来说就是,wx.setStorageSync最好不要通过路由API的success进行传递
希望能够帮助到更多的小程序开发爱好者