小程序获取app.js中的全局变量为空
最近写小程序的时候,需要获取用户openid,在app.js使用了相关API获取用户信息,然后存到全局变量中,在其他页面使用的时候,发现获取全局变量的时候是空值。后才发现在小程序中,onLaunch 方法和>
App
(
{
* 当小程序初始化完成时,会触发>:
{
openId
:
''
,
unionId
:
''
,
>:
function
(
)
{
var
that
=
this
;
wx
.
login
(
{
success
(
res
)
{
console
.
log
(
res
)
wx
.
request
(
{
url
:
'url'
,
data
:
{
"code"
:
res
.
code
,
method
:
'get'
,
header
:
{
'content-type'
:
'application/json'
success
(
res
)
{
console
.
log
(
res
)
that
.
globalData
.
unionId
=
res
.
data
.
unionid
;
that
.
globalData
.
openId
=
res
.
data
.
openid
;
if
(
that
.
loginCallBack
)
{
that
.
loginCallBack
(
res
)
fail
(
res
)
{
console
.
log
(
'网络请求失败'
+
res
)
index.js
var app=getApp();
var openid=app.globalData.openId;
>: function (e) {
var that=this;
app.loginCallBack=function(){
openid=app.globalData.openId
如果想在其他页面引用全局变量的话,需要在那个页面的onLoad方法中再次赋值:
>: function (options) {
vipopenid=app.globalData.openId;
xxx=app.globalData.xxx;
否则,全局变量的值可能还是为空!