收藏
回答

app.globalData出现错误?


反正我也不知道是个什么情况……


代码如下,也就是微信小程序默认的启示界面的代码稍改了一下

onLoad: function (options) {
    console.log(app.globalData)
    if (app.globalData.userInfo) {
      this.setData({
        userInfo: app.globalData.userInfo,
        hasUserInfo: true
      })
      setTimeout(function(res){
        wx.switchTab({
          url: '/pages/My/MyPage/MyPage',
        })
      },2000)
    } else if (this.data.canIUse) {
      // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
      // 所以此处加入 callback 以防止这种情况
      app.userInfoReadyCallback = res => {
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    } else {
      // 在没有 open-type=getUserInfo 版本的兼容处理
      wx.getUserInfo({
        success: res => {
          app.globalData.userInfo = res.userInfo
          this.setData({
            userInfo: res.userInfo,
            hasUserInfo: true
          })
        }
      })
    }
  },


app.js

onLaunch: function () {
  // 检查是否更新
  this.checkForUpdate()
  // 展示本地存储能力
  var logs = wx.getStorageSync('logs') || []
  logs.unshift(Date.now())
  wx.setStorageSync('logs', logs)
 
  
  // 获取用户信息
  wx.getSetting({
    success: res => {
      if (res.authSetting['scope.userInfo']) {
        // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
        wx.getUserInfo({
          success: res => {
            // 可以将 res 发送给后台解码出 unionId
            console.log(res.userInfo)
            this.globalData.userInfo = res.userInfo
            // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
            // 所以此处加入 callback 以防止这种情况
            if (this.userInfoReadyCallback) {
              this.userInfoReadyCallback(res)
            }
          }
        })
      }
    }
  })
 
},


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

3 个回答

  • 卢霄霄
    卢霄霄
    2019-10-16


    let obj = {a:null}
    setTimeout(()=>{
        obj.a = 1
    },100)
    console.log(obj)

    你看看 和你情况是不是一样的

    2019-10-16
    有用 2
    回复 1
    • 红泥小火炉
      红泥小火炉
      2019-10-17
      是的……
      2019-10-17
      回复
  • 红泥小火炉
    红泥小火炉
    2019-10-18

    好的多谢

    2019-10-18
    有用
    回复
  • 心心情
    心心情
    2019-10-16

    代码的同异步问题~控制台打印的是当时加载的数据,当点击查看的时候,已经是更新的数据了。

    2019-10-16
    有用
    回复 2
    • 红泥小火炉
      红泥小火炉
      2019-10-17
      请问怎么解决……
      2019-10-17
      回复
    • 心心情
      心心情
      2019-10-18回复红泥小火炉
      获取用户信息单独写一个函数,onLoad时候调用函数呀
      2019-10-18
      回复
登录 后发表内容
问题标签