今天看啥  ›  专栏  ›  Miss.小堆

【vue踩坑记录】之“TypeError: Cannot read property 'RcA1' of undefined”

Miss.小堆  · 掘金  ·  · 2020-04-17 02:52

文章预览

阅读 4

【vue踩坑记录】之“TypeError: Cannot read property 'RcA1' of undefined”

前言:

做项目的时候,界面显示正常,但是浏览器仍然报出“TypeError: Cannot read property 'RcA1' of undefined”错误,具体如下

解释:

显示百度翻译了一下:说是渲染错误,TypeError:无法读取未定义的RcA1. 我的理解是->这里的意思就是模板在渲染时候,读取对象中的某个对象的属性值时,这个对象不存在,说通俗点就是表达式b.c,在对象b中没有找到对象c,那么读取对象b.c中的值,自然会报错。

原因:

在vue渲染机制中:异步数据先显示初始数据,再显示带数据的数据,所以上来加载Result的时候还是一个空数组。因为我们再data里面初始化赋值的是时候是写Result:[]。渲染完成后才加载异步的数据。 所以在渲染时,出现的三层表达式在Result中取Result[0]数组中的RcA1的对象还不存在,再在这个对象中取其他值自然会报错,但是渲染完成后,Result中的值加载好了,自然可以取到,这也就解释了为什么界面正常显示,但浏览器会报错的原因。

解决:

最后我上面一个div中添加v-if判断条件,如果Result为空,则不加载该div即可解决。(提醒一下,不能用v-show,v-show的机制是加载后,根据条件判断是否显示)

………………………………

原文地址:访问原文地址
快照地址: 访问文章快照
总结与预览地址:访问总结与预览