收藏
回答

globalData中设置openId(调用云函数login获取)有时候编译的时候会报错?

小程序想实现获取当前使用的用户openID,调用了云函数login返回openID并设置在globalData中,但是编译的时候偶尔会报错:VM1004 WAService.js:2 TypeError: Cannot set property 'openId' of undefined。

真的是偶尔。。再多编译一次可能就不会有这个报错了,小白不知道如何解决?

回答关注问题邀请回答
收藏

3 个回答

  • 默
    2021-03-01

    在你未获取到openID的时候使用openID就会报这个错误

    再次编译的时候openID或取到并存入全局变量 所以取的是全局变量里面的 不会报错

    不知道是不是这种情况 我之前是这个问题 后来加了一个延时 解决了


    2021-03-01
    有用 2
    回复 3
    • RayTao
      RayTao
      2021-03-01
      谢谢!想请教一下 加延时是在小程序使用openID那里加嘛?怎么加的?
      2021-03-01
      回复
    • 默
      2021-03-01回复RayTao
      在使用openID的时候加  0-1000之内就可以了
      2021-03-01
      1
      回复
    • RayTao
      RayTao
      发表于移动端
      2021-03-01回复
      好的 我去试试!谢谢!
      2021-03-01
      回复
  • 李文博
    李文博
    2021-04-16

    我也遇到类似的问题

    想要把获取到的openid信息加入到userInfo里面

    一直报错,不知道怎么解决,app.globalData.userInfo和res.result.wxContext.OPENID返回值都是正常的

    2021-04-16
    有用
    回复
  • 跨商通
    跨商通
    2021-03-01

    const 改成 let

    2021-03-01
    有用
    回复 5
    • RayTao
      RayTao
      2021-03-03
      好像还是会出现
      2021-03-03
      回复
    • 跨商通
      跨商通
      2021-03-04回复RayTao
      res.result里并没有openId,你打印一下看看
      2021-03-04
      回复
    • RayTao
      RayTao
      2021-03-04回复跨商通
      我试过了,报错的时候也有openID的 每一次都打印出来了,就是无法在globalData里面设置这个OpenID变量
      2021-03-04
      回复
    • RayTao
      RayTao
      2021-03-04
      不知道为什么会出现set的错误(是因为原来就有这个变量嘛?)
      2021-03-04
      回复
    • 跨商通
      跨商通
      2021-03-04回复RayTao
      这种undefined的问题很好排查:找到所有openId,找到所有xxx.openId,打印这个xxx即可。比如你的代码里xxx就是that.globalData.userInfo。
      2021-03-04
      回复
登录 后发表内容
问题标签