解决方法:
1)预先写好定义的多级属性。
2)全局root根节点,加上条件编译,v-if,即数据加载完之后再渲染。
场景还原
如上述的一个错误信息显示,我在data里面定义的一个对象,result.但result.lhlist.zyxg.vlaue这后续的一系列子属性,都是我通过api请求后得来的数据。但这个时候,就会出现如下错误:
原因很容易了解,因为我只在data里面定义了result.
返回来的属性值和列表,有很大程度上是未知的。所以,在请求完数据之前,界面就开始渲染了,肯定就会出现这些错误信息。毕竟,请求数据是需要时间的,而本地的dom或是view结构,是直接提前渲染了。所以出错是必然的。
操作步骤
1.直接在data的时候,挨个写属性,这个,感觉不可取,当然,你也可以尝试。比如我试了一个。如下图:
本来一行就能解决的事,我一下子写了这么多,而且非常不可控,扩展性比较差。
2.在根节点定义一个条件编译,这个简单。
a)data中定义一个请求是否结束的标志变量lskfi,默认为false
b)请求结束后,this.lskfi=true
c)在根dom中使用v-if="lskfi"
解决。