具体是在小程序里面onload()方法给页面变量赋值,代码如下:
onLoad() {
console.log('all', app.globalData);
console.log('app', app.globalData.appinfo.client_id);
console.log('user', app.globalData.userinfo);
this.setData({
nickName: app.globalData.userinfo.nickName,
avatarUrl: app.globalData.userinfo.avatarUrl
});
}
其中打印出来的截图是:
请教为什么userinfo获取不到???
console
是异步的,也就是当你按对象箭头的时候,会再次请求数据,所以,你点开的时候userinfo
是存在的,但是你在页面上获取的时候,其实是有数据获取延迟
的,你设置settimeout延迟3秒
再获取试试,应该能获取到;我之前也遇到过这个问题,最终的解决方案是,不在页面js中获取数据,而是采用一个
utils下的js来获取数据
,再返回一个方法
,然后在页面onload的时候调这个方法,然后将返回的值赋值给页面data
,然后在页面上直接取值就行,你要是非得处理数据,建议在wxs文件
中声明函数来处理
,在页面js中是会有数据延迟的;举个例子:
比如我的购物车的数据是需要实时变化的,所以,我写了一个shopping-cart.js的文件在utils下面,sc就是购物车所包含的页面需要的所有数据
然后通过下面这种方法返回sc数据

页面调用的时候只需要
然后,如果你需要处理返回的数据,就在wxs文件中写一个函数,处理就行;