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

  • 相关阅读:
    Python操作redis数据库
    计算机基础与操作系统
    git使用快速入门
    RESTful API设计规范
    Python数据分析常用的库总结
    关于Cookie和Session
    一个开发的Linux使用心得总结
    排序算法与查找算法
    Django的form,model自定制
    Redis基础、高级特性与性能调优
  • 原文地址:https://www.cnblogs.com/tandaxia/p/10839290.html
Copyright © 2020-2023  润新知