1. 程式人生 > >小程序報錯 “渲染層錯誤” Expect END descriptor with depth 0 but get another

小程序報錯 “渲染層錯誤” Expect END descriptor with depth 0 but get another

dev app 標準 tor 日誌 define ima service ram

 項目中有幾個頁面在控制臺出現這個“渲染層錯誤”,雖然不影響業務操作,怕存在潛在風險,今天抽時間找了下原因,解決這個問題。

控制臺報錯日誌如下:

(中國標準時間) 渲染層錯誤

Error: Expect END descriptor with depth 0 but get another
at i.value (:39360/__pageframe__/__dev__/WAWebview.js:1)
at Function.G [as _startCb] (:39360/__pageframe__/__dev__/WAWebview.js:1)
at n (:39360/__pageframe__/__dev__/WAWebview.js:1)

at h (:39360/__pageframe__/__dev__/WAWebview.js:1)
at :39360/__pageframe__/__dev__/WAWebview.js:1
at t.(:39360/appservice/anonymous function) (http://127.0.0.1:39360/__pageframe__/__dev__/WAWebview.js:1:94975)
at :39360/__pageframe__/pageframe.html:1
at :39360/__pageframe__/pageframe.html:1
at :39360/__pageframe__/pageframe.html:1
at Array.forEach (<anonymous>)

截圖:

技術分享圖片

主要找到了2個原因,記錄分享一下:

1、在js中操作中,把undefined賦值給了一個數組變量,假設變量名為arr;

在.wxml頁面中使用了變量arr.

這個原因導致了報“渲染層錯誤”。處理了arr變量後,這個錯誤也就沒有了

2、子組件的.wxml頁面中使用了if造成了這個報錯,後面把if判斷改成style來控制隱藏顯示,

然後也消除了這個“渲染層錯誤”。

未改前代碼截圖:

技術分享圖片

改後代碼截圖:

技術分享圖片

奇怪的是其他地方使用if並沒有報這個錯,原理還不清楚!

小程序報錯 “渲染層錯誤” Expect END descriptor with depth 0 but get another