在上一篇博客中,我在项目中使用了对页面data
的监听函数,在wx:if
结构中引用到了被监听的这个字段,从而引发了Error: Expect END descriptor with depth 1 but get another这个bug。
论坛中官方解释是这样的:
检查了一下我的代码,发现在监听函数中(app.js
中定义的observe
方法):
set(value) {
console.log('set ',key)
val = value;
fun.call(caller, value, val)
},
这里相当于上图中的对data直接赋值。由于setData如果涉及到监听属性,同样也会触发上面的set函数,从而导致了渲染错误。
Solution
目前并没有发现能修改监听函数的好的办法,那么解决办法就是不要用这个监听函数了…