小程序报错 “渲染层错误” 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);

 

posted @   谈晓鸣  阅读(7829)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示