项目中有几个页面在控制台出现这个“渲染层错误”,虽然不影响业务操做,怕存在潜在风险,今天抽时间找了下缘由,解决这个问题。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);