微信小程序getApp().globalData.user无法获取值

 一、debug过程

        在进行微信小程序的开发过程中,我利用如下代码获取全局变量中的username的值,但其结果缺如图中所示的只向数据库中存入了对应的类型即object Object。

username: getApp().globalData.user.username,

数据库结果
数据库结果

其中,全局变量如下代码所示,以及其该变量的类型在终端的输出

globalData中的user变量
该变量的终端输出

 

 我一开始以为我的代码没有问题,但是甚至得不到如上面数据库中所示的object类型的表达,经排查是我搞混了user和userInfo,user我用来存储存到数据库以及从数据库中获得的信息,而userInfo是从小程序进入后的授权弹窗中获得的用户的nickname以及avatarUrl信息,后修改。

二、bug解决方法

但仍然无法获取,最后再次比对user内容,发现我应该继续进行索引每一个中的键值对

即修改代码如下:

username: getApp().globalData.user.username.username,

 三、心得

小心写代码,多多写注释,防范手抖写错变量名。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
我可以提供微信小程序授权登录的代码示例,具体如下: 1、在小程序设置里开启微信登录功能 2、引用登录组件 ```javascript var app=getApp(); var {openid}=app.globalData; var {user_info}=app.globalData; App({ onLaunch: function () { var that=this; var systemInfo=wx.getSystemInfoSync(); //获取设备宽高然后进行数据绑定 that.globalData.winWidth=systemInfo.windowWidth; that.globalData.winHeight=systemInfo.windowHeight; that.checkLogin(); }, checkLogin:function(){ var that=this; return new Promise(function(resolve,reject){ if(!openid){ wx.login({ success:function(res){ if(res.code){ wx.getUserInfo({ success:function(res){ wx.request({ url:'API接口地址', data:{ action:'login', code:res.code, nickName:res.userInfo.nickName, avatarUrl:res.userInfo.avatarUrl, gender:res.userInfo.gender, province:res.userInfo.province, city:res.userInfo.city, country:res.userInfo.country }, method:'POST', header:{ 'content-type':'application/x-www-form-urlencoded' }, success:function(res){ if(res.data.status === 1){ openid=res.data.openid; user_info= res.data.userInfo; that.globalData.user_info=user_info; that.globalData.openid=openid; resolve(); } else{ that.globalData.openid=''; that.globalData.user_info={}; reject(res.data.msg); } }, fail:function(res){ reject(res); } }) }, fail:function(res){ reject(res); } }) } else{ reject(res); } }, fail:function(res){ reject(res); } }) } else{ resolve(); } }) }, globalData: { openid:'', user_info:{}, winWidth:'', winHeight:'', } }) ``` 3、调用登录方法并获取用户信息 ```javascript // pages/home/home.js var app=getApp(); var {openid}=app.globalData; var {user_info}=app.globalData; Page({ data:{ openid:'', nickname:'', avatar:'', }, onLoad:function(options){ var that=this; if(user_info) { that.setData({ openid:openid, nickname:user_info.nickName, avatar:user_info.avatarUrl }) } else { app.checkLogin().then(function(){ that.setData({ openid:openid, nickname:user_info.nickName, avatar:user_info.avatarUrl }) }) } } }) ``` 希望能够帮到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值