解决方法:

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"

解决。

更多推荐