小程序上线后发现有些用户登录后,在某些页面与后台数据交互时偶尔会有用户主键为空(甚至切换账号后传到后台的竟是上个账号的用户主键)的情况,经一步步排查后,发现应该是其中data与缓存的生命周期原因。
推测是在小程序在启动时会先给所有页面的data赋默认值,此时若是还未将值存储到缓存中是取不到值的,且在此页面的后续操作中没有给属性重新赋值,就一直都是null;
若是之前登录过其他账号,在data初次渲染时...此时缓存中的用户主键还是上个用户的....
data: {
userId: wx.getStorageSync('userId')
},
于是我将赋值操作写在了onLoad中便再没复现过上述错误了
onLoad() {
this.setData({
userId: wx.getStorageSync("userid")
})
}