項目中有幾個頁面在控制檯出現這個「渲染層錯誤」,雖然不影響業務操做,怕存在潛在風險,今天抽時間找了下緣由,解決這個問題。html
控制檯報錯日誌以下:小程序
(中國標準時間) 渲染層錯誤數組
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>)app
截圖:測試
主要找到了2個緣由,記錄分享一下:spa
一、在js中操做中,把undefined賦值給了一個數組變量,假設變量名爲arr;日誌
在.wxml頁面中使用了變量arr. code
這個緣由致使了報「渲染層錯誤」。處理了arr變量後,這個錯誤也就沒有了xml
二、子組件的.wxml頁面中使用了if形成了這個報錯,後面把if判斷改爲style來控制隱藏顯示,htm
而後也消除了這個「渲染層錯誤」。
未改前代碼截圖:
改後代碼截圖:
奇怪的是其餘地方使用if並無報這個錯,原理還不清楚!
================== 小程序其餘問題記錄 ================
一、時間字符串格式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);