项目中有几个页面在控制台出现这个“渲染层错误”,虽然不影响业务操作,怕存在潜在风险,今天抽时间找了下原因,解决这个问题。
控制台报错日志如下:
(中国标准时间) 渲染层错误
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并没有报这个错,原理还不清楚!