收藏
回答

this.setData不能这样使用吗?

Page({
  data: {
    openid: '',
    info: {}
  },
  getUserInfo() {
    console.log("openid" + this.data.openid);
    if (!this.data.openid.trim()) {
      return;
    }


  },
  onLoad() {
    this.getUserInfo();
    const openid =  wx.getStorageSync('openid')
    this.setData({
      openid: openid
    })
  },

})

新手入坑,要崩溃了?

在onLoad中设置了openid的值,缓存中也openid的值,为什么打印openid的时候却没有值?有大佬知道的吗?

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

6 个回答

  • Exodus
    Exodus
    01-12

    执行顺序颠倒了,先赋值后打印才对

    01-12
    有用 1
    回复
  • 一笑皆春
    一笑皆春
    01-12

    先后顺序呗,getUserInfo先执行,都还没有赋值,所以打印是空

    01-12
    有用 1
    回复
  • momo
    momo
    01-12

    方法调用顺序不对吧 openid打印的时候还没赋值

    01-12
    有用 1
    回复
  • song
    song
    01-13

    解决了,谢谢大家

    01-13
    有用
    回复
  • 那一抹笑😃 穿透阳光
    那一抹笑😃 穿透阳光
    01-12

    改成同步,用async await 写法,就可以这样写了

    01-12
    有用
    回复
  • 跨商通
    跨商通
    01-12

    你的代码相当于:

    console.log(openid)
    let openid = 'openid'
    
    01-12
    有用
    回复
登录 后发表内容