1***@qq.com
1***@qq.com
  • 发布:2024-07-12 10:52
  • 更新:2024-07-12 11:14
  • 阅读:128

在页面的onLoad生命周期使用uni.setStorageSync没效果。

分类:uni-app

小程序初始化时在页面的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,接口入参为空  
}
2024-07-12 10:52 负责人:无 分享
已邀请:
爱豆豆

爱豆豆 - 办法总比困难多

没存进去?用setStorage试试
能发个复现的demo吗?我看下你怎么存储和获取的

  • 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

要回复问题请先登录注册