在 vue.js 中查找数组长度时无法读取未定义的属性“长度”
Posted
技术标签:
【中文标题】在 vue.js 中查找数组长度时无法读取未定义的属性“长度”【英文标题】:Cannot read property 'length' of undefined in finding length of an array in vue.js 【发布时间】:2021-02-13 03:55:35 【问题描述】:我在 vue.js 中有这种数据结构
data()
return
formData: new Form(
files:[],
Count:5,
..
我正在尝试使用此代码获取长度:
<div class="image-input" v-if="this.formData.files.length < this.formData.Count">
当我运行此代码时,我在控制台中收到此错误:
TypeError: 无法读取未定义的属性“长度”
该错误在这行代码中,v-if="this.formData.files.length
非常感谢任何帮助。
【问题讨论】:
您不需要使用模板中的this
引用。
@ChristianCarrillo:我尝试删除它但仍然遇到同样的错误
你的意思是v-if="formData.files.length < formData.Count"
?
@ChristianCarrillo: 是的,我试过这个 v-if="formData.files.length
Form 类存在吗?因为你的 formData 是它的一个实例
【参考方案1】:
避免在模板部分使用'this'操作符
<div class="image-input" v-if="formData.files.length < formData.Count">
【讨论】:
【参考方案2】:如果您真的想使用 Form 类,那么您需要为构造函数使用右大括号和右括号,为返回的对象使用右大括号(除非您的意思是用 ... 暗示所有这些:- )
但通常在 Vue 数据中,我们只使用普通对象而不是类。所以我想知道你的意思是:
data()
return
formData:
files:[],
Count:5,
..
【讨论】:
以上是关于在 vue.js 中查找数组长度时无法读取未定义的属性“长度”的主要内容,如果未能解决你的问题,请参考以下文章
TypeError:无法读取reactjs中未定义的属性“长度”
Vue.js:TypeError:无法读取未定义的属性“$router”?