收藏
回答

小程序异步获取用户信息问题

问题模块
API和组件

官方文档里,小程序由于是异步获取userinfo,所以使用了userInfoReadyCallback

但如果在index.js的onLoad方法里,就要通过userInfo获取其他信息的话,

app.userInfoReadyCallback callback方法还没有执行,就会使用到userInfo而报错啊


//app.js

// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回// 所以此处加入 callback 以防止这种情况if (this.userInfoReadyCallback) {                

    this.userInfoReadyCallback(res)}

//index.js

onLoad: function () {    

if (app.globalData.userInfo) {      

this.setData({

        userInfo: app.globalData.userInfo,
        hasUserInfo: true
      })
    } else {      // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
      // 所以此处加入 callback 以防止这种情况
      app.userInfoReadyCallback = res => {        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    }
  },



最后一次编辑于  2017-09-24  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏关注问题回答

2 个回答

  • yuhao
    yuhao
    2017-09-24

    换思路,不要想着在本页面,在之前 的页面上加载到变量里,传进来就不行了。

    2017-09-24
    赞同
    回复
  • 孙志坚
    孙志坚
    2017-09-25

    是小程序加载的时候需要的……

    2017-09-25
    赞同
    回复