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、解決這個問題:
發散思維、讀代碼、不放過任何一個小細節,任何提示信息都去搜索引擎找找答案。不然只看官方文檔、只按已有的知識去解決上面這個問題好難啊。