uni-app寫微信小程序,data字段循環引用

在寫程序過程中,需要使用到 globalData裏的內容,而這個全局變量,在uni-app上需要通過:
var app=getApp();
app.globalData.xxx=xxx來使用。
我覺得每次都要獲取app對象,嫌麻煩,就在data數據段裏定義一個app字段,
之後就通過 this.app.globalData來使用,問題就出現在這。我用hbuilderX運行到微信小程序開發工具和工具上的真機預覽,都沒問題,唯獨發佈後,就報錯,相關組件功能失效。報錯內容如下:
    --> starting at object with constructor 'vr'
    --- property '_renderProxy' closes the circle>
TypeError: Converting circular structure to JSON
    --> starting at object with constructor 'vr'
    --- property '_renderProxy' closes the circle
    at JSON.stringify ()
    at a.zr [as __patch__] (https://usr/app-service.js:4343:41837)
    at Tn.e._update (https://usr/app-service.js:4343:27516)
看意思知道是循環引用,後來經過反覆發佈體驗版,才知道是問題在這個getApp()的變量不能定義到data數據段裏裏。
想一想,getApp()獲取的是整個app的對象了,每個頁面的變量或許都有。那麼我在某個頁面定義個app,app本來就包含得有這個頁面得變量,就形成了循環引用了。
所以以後得注意,這種循環引用,看有沒有一些全局字段,相互引用了得。遇到相似問題,也多一種思路。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章