小程序模板網(wǎng)

小程序報(bào)錯(cuò): Uncaught TypeError: Converting circular structure to JSON

發(fā)布時(shí)間:2018-05-30 11:25 所屬欄目:小程序開發(fā)教程

今天把最近一直在開發(fā)的小程序放安卓手機(jī)上測(cè)試一下,結(jié)果某個(gè)頁面就一直報(bào)錯(cuò): Uncaught TypeError: Converting circular structure to JSON

先說一下基本的環(huán)境:

系統(tǒng):Android 6.0.1

手機(jī):小米4

微信版本:6.6.6

小程序基于mpvue開發(fā)

在看到這個(gè)錯(cuò)誤的時(shí)候,明白導(dǎo)致的原因應(yīng)該是因?yàn)橐粋€(gè)對(duì)象里面有循環(huán)引用,然后這個(gè)對(duì)象不幸的被JSON.stringify給調(diào)用了

可是這個(gè)有循環(huán)引用的對(duì)象在哪就不清楚了。

一開始想的是vue對(duì)象的data,因?yàn)樾〕绦蚶锩?,jscore會(huì)把這個(gè)data stringify之后發(fā)送給webview來渲染頁面。一直沿著這個(gè)思路在debug

而我出錯(cuò)的那個(gè)頁面的data很簡(jiǎn)單

{
  list: [],
  currPage: 1,
  pageSize: 10,
  isEnd: false,
  isLoading: false
}

唯一可能出問題的地方也就list了,可是試了很多方法,都證明了list不是有循環(huán)引用的點(diǎn)。

無奈只好google看看大家的解決方案,然后在mpvue的github的issues里面發(fā)現(xiàn)有一個(gè)類似的錯(cuò)誤的 issue

雖然引發(fā)錯(cuò)誤的原因不一樣,不過最后最底下 @anchengjian 的一個(gè)提示給了我另外一個(gè)方向,除了JSON.stringify之外,console也可能導(dǎo)致類似的錯(cuò)誤。

根據(jù)這個(gè)新的思路,從新讀了一遍代碼,發(fā)現(xiàn)了一句 console.log(this) ,當(dāng)初調(diào)試的時(shí)候,為了方便,把整個(gè)vue的實(shí)例給log了。注釋掉這一行,重新編譯,在安卓上預(yù)覽,果然,一切正常了。

這個(gè)console.log在開發(fā)者工具和ios上都沒問題,可到安卓上出了問題??赡苁前沧可?,微信的x5實(shí)現(xiàn)console.log的時(shí)候,先調(diào)用了JSON.stringify吧

這個(gè)問題不想深究了,不過被這種問題耽擱了半天又無益于技術(shù)進(jìn)步,想想還是記錄下來,方便后來者。


本文地址:http://22321a.com/wxmini/doc/course/24480.html 復(fù)制鏈接 如需定制請(qǐng)聯(lián)系易優(yōu)客服咨詢:800182392 點(diǎn)擊咨詢
QQ在線咨詢