页面渲染正常,但是控制台有一个错误,是报页面渲染错误,不能读取address未定义的属性

下面是代码:

经过百度之后的得到的是:意思是 在created调用封装请求接口的函数 ,获取到的数据再给保存起来并渲染到dom元素,不过数据渲染之前 dom元素会先渲染一次到渲染获取到的数据。那么就会导致渲染获取的数据会未定义,没有这个属性/对象。
我理解的就是四层表达式,嵌套的太多,无法读取那么多层
这里的sendInfo是data里面的数据,
异步调用显示,然后vue渲染机制中:
异步数据先显示初始数据,再显示带数据的数据,
所以上来加载 sendInfo 时候还是一个空对象。

当渲染完成后,才加载异步数据
所以在渲染时,出现的链式调用在shipper中取 address 的 countryCode 属性是不存在,再在这个对象中取其他值自然会报错,但是渲染完成后,countryCode 中的值加载好了,自然可以取到,这也就解释了为什么界面正常显示,但开发者工具会报错的原因
解决办法:

在需要将请求数据加载到模板最外面的地方,加上一个 v-if 判断 sendInfo.shipper.address是否存在,存在就加载出模板,不存在,这一段代码就销毁,等到数据请求回来之后,就重新解析模板,然后页面加载出来,且控制台没有错误【注意,不要用 v-show 它没有真正意义上的销毁,只是css上的显示隐藏,用了还是报错】
但是我的问题还是没有解决,控制台还是会报一样的错误,然后我在处理数据之后,对数据又剥了一层,再加上v-if那个解决办法,控制台就没有报错了。可能就是因为调用太多,嵌套太多的原因


所以,问题已经完美解决!