全局变量无法调用
发布于 5 年前 作者 ming98 8163 次浏览 来自 问答
3 回复

//app.js

App({

  onLaunch: function () {

    // 展示本地存储能力

    var logs = wx.getStorageSync(‘logs’) || []

    logs.unshift(Date.now())

    wx.setStorageSync(‘logs’, logs)

    // 登录

    wx.login({

      success: res => {

        // 发送 res.code 到后台换取 openId, sessionKey, unionId

      }

    })

    // 获取用户信息

    wx.getSetting({

      success: res => {

        if (res.authSetting[‘scope.userInfo’]) {

          // 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框

          wx.getUserInfo({

            success: res => {

              // 可以将 res 发送给后台解码出 unionId

              this.globalData.userInfo = res.userInfo

              // 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回

              // 所以此处加入 callback 以防止这种情况

              if (this.userInfoReadyCallback) {

                this.userInfoReadyCallback(res)

              }

            }

          })

        }

      }

    })

    //获取地理位置

    wx.getLocation({

      type: ‘gcj02’, // 返回可以用于wx.openLocation的经纬度

      success:res => {

        this.globalData.latitude = res.latitude

        this.globalData.longitude = res.longitude

        // const latitude = res.latitude

        // const longitude = res.longitude

        // wx.openLocation({

        //   latitude,

        //   longitude,

        //   scale: 18

        // })

      }

    })

  },

  globalData: {

    userInfo: null,

    latitude: null,

    longitude: null

  },

  gg:function(){

    console.log(“全局变量”)

  }

})

app.js代码贴出来看下

如果你一开始是设置app.globalData.latitude为null,后面才设置app.globalData.latitude的值得话,这样正常,如果是一开始就有值的话,请把app.js贴出来看看,app是一个对象,latitude在上面出现有值也不是不可能

回到顶部