小程序
小游戏
企业微信
微信支付
扫描小程序码分享
3 个回答
加粗
标红
插入代码
插入链接
插入图片
上传视频
如果你一开始是设置app.globalData.latitude为null,后面才设置app.globalData.latitude的值得话,这样正常,如果是一开始就有值的话,请把app.js贴出来看看,app是一个对象,latitude在上面出现有值也不是不可能
你好,麻烦通过点击下方“反馈信息”按钮,提供出现问题的。
请看
也就是说你一开始设置的值是null,你设置的值是小程序onLaunch执行的,onLauch是小程序初始化完了才执行,这样不就可以解析清楚了,app.gg()初始化过程中也可以执行,你在Page()外执行console.log(app.globalData.latitude),app.globalData.latitude小程序初始化过程中就可以执行了,小程序还没初始化完你就执行了,拿到的值是你设置的null不是很正常吗?你应该是执行设置值了之后才执行console.log(app.globalData.latitude)才可以执行,这就是生命周期执行顺序问题而已
谢谢哈
//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({
if (res.authSetting['scope.userInfo']) {
// 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框
wx.getUserInfo({
// 可以将 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在上面出现有值也不是不可能
请看
也就是说你一开始设置的值是null,你设置的值是小程序onLaunch执行的,onLauch是小程序初始化完了才执行,这样不就可以解析清楚了,app.gg()初始化过程中也可以执行,你在Page()外执行console.log(app.globalData.latitude),app.globalData.latitude小程序初始化过程中就可以执行了,小程序还没初始化完你就执行了,拿到的值是你设置的null不是很正常吗?你应该是执行设置值了之后才执行console.log(app.globalData.latitude)才可以执行,这就是生命周期执行顺序问题而已
谢谢哈
//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代码贴出来看下
好的