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


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

控制台報錯日志如下:

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

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並沒有報這個錯,原理還不清楚!

 

 

================== 小程序其他問題記錄 ================

1、時間字符串格式yyyy-MM-dd 轉成時間在iOS設備上不被識別,需要把yyyy-MM-dd格式轉成其他yyyy/MM/dd格式類型,然后才能將時間字符串轉成時間。

測試列子(iOS手機):

var str1 = "2018-08-18 08:18", str2 = str1.replace(/-/g, '/');
console.log("str1: ", str1, ", str2: ", str2);

var date1 = new Date(str1), date2 = new Date(str2);
console.log("date1: ", date1);
console.log("date2: ", date2);

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM