小程序初始化时在页面的onLoad生命周期发送了http请求,返回的数据使用uni.setStorageSync存储在了本地,但是发现并没有存储成功。
然后关掉重新进入小程序就可以正常的存储和获取了。这是为什么呀?
// 页面生命周期
async onLoad() {
await this.wxLogin();
}
// 获取openid和unionid 并存储到本地
wxLogin() {
return new Promise((resolve, reject) => {
wx.login({
provider: "weixin",
success: (res) => {
this.$api
.getWxOpenId({ code: res.code })
.then((openIdRes) => {
var { openid, unionid } = openIdRes;
uni.setStorageSync("openid", openid);
uni.setStorageSync("unionid", unionid);
resolve();
})
.catch(() => {
reject();
});
},
});
});
},
// 登录
doctorLogin(e) {
登录时使用uni.getStorageSync获取本地存储的openid和unionid,接口入参为空
}
1***@qq.com (作者)
我贴了一部分代码 重新更新了一下帖子
2024-07-12 11:26
爱豆豆
回复 1***@qq.com: doctorLogin在哪里调用的 什么时候调用的?
2024-07-12 14:13
爱豆豆
感觉是你调用时机的问题
2024-07-12 14:14
爱豆豆
你要看你本地存储中是不是真的存进去了
如果存进去 取不到 那就是你调用时机的问题
调用uni.getStorageSync的时候 给他加个 延时器 延时2秒试试能不能拿到 排查一下
2024-07-12 14:16
爱豆豆
或者你直接发个demo 我帮你看下
2024-07-12 14:16
1***@qq.com (作者)
回复 爱豆豆: 应该不是调用时机的问题,因为我是点击按钮的时候调用的。我现在把参数存到了data里面 这个问题现在已经解决了 只是很好奇为什么小程序初始化的时候存不到本地
2024-07-15 10:12