1、怎么在index.js中获取app.js中的全局变量?
现象:index.js获取不到全局变量globalData.userInfo
各种猜想测试读代码:
A、排除法:是不是index.js的问题? 更改app.json页的启动页,发现更换之后,index.js又能读取到全局变量,但是新的启动页又不行了,我把问题锁定在app.js。
B、然后是各种读代码、输出变量,无解。
C、在上述过程中,测试console.log(app.globalData.userInfo); 发现sonsole栏有这样的提示:value below was evaluated just now
到百度上面搜索发现有这种说法:
其实,代码运行到console.log()时,确实是没值的,我们展开小三角看到的值,其实是在展开时,浏览器将此时内存中的值展示了。解决方法是延迟两秒再获取就可以获取到了该属性值(https://blog.csdn.net/liusj_518/article/details/89212569)
setTimeout(function () {
console.log(app.globalData.userInfo);
that.setData({
userInfo: app.globalData.userInfo
});
}, 2000)
到此发现index.js也可以获取到全局变量了。
什么意思嘛!小程序官方文档没有说到这种事情吧。
2、解决这个问题:
发散思维、读代码、不放过任何一个小细节,任何提示信息都去搜索引擎找找答案。不然只看官方文档、只按已有的知识去解决上面这个问题好难啊。