【问题标题】:Cannot read property 'length' of undefined in finding length of an array in vue.js在 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 &lt; formData.Count"
  • @ChristianCarrillo: 是的,我试过这个 v-if="formData.files.length
  • Form 类存在吗?因为你的 formData 是它的一个实例

标签: jquery vue.js vuejs2


【解决方案1】:

避免在模板部分使用'this'操作符

<div class="image-input" v-if="formData.files.length < formData.Count">

【讨论】:

    【解决方案2】:

    如果您真的想使用 Form 类,那么您需要为构造函数使用右大括号和右括号,为返回的对象使用右大括号(除非您的意思是用 ... 暗示所有这些:- )

    但通常在 Vue 数据中,我们只使用普通对象而不是类。所以我想知道你的意思是:

    data() {
         return {
            formData:{
              files:[],
              Count:5,
              ..
             }
          }
      }
    

    【讨论】:

      猜你喜欢
      • 2019-04-20
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-10
      • 1970-01-01
      • 1970-01-01
      • 2023-03-11
      • 2020-09-14
      相关资源
      最近更新 更多