渲染错误:“ TypeError:无法读取未定义的属性'名称'” [Vue警告]

时间:2019-07-23 18:09:49

标签: javascript vue.js

我遇到以下错误:

  

TypeError:无法读取未定义的属性“名称”

Vue文件:

edit(id) {
    this.users = this.fields[id];
    console.log(this.users);
},

脚本:

a = [1, 2, 3, 4]

1 个答案:

答案 0 :(得分:0)

当您尝试访问尚不存在的对象的属性时,通常会发生此错误(通常是因为它是异步创建的,例如带有API请求)。如果是这种情况,只需告诉模板等待对象通过v-if存在。

<template v-if="fields && fields.data">
  <tr v-for="user in fields.data" :key="user.id">
    <td>{{ user.id }}</td>
    <td>{{ user.name }}</td>
    <td>{{ user.email }}</td>
    <td>{{ user.password }}</td>
    <td>
      <a href="#" data-toggle="modal" data-target="#modal" @click="edit(user.id)">
            <span class="btn btn-primary">
                <i class="mdi mdi-edit"></i>
            </span>
      </a>
    </td>
  </tr>
</template>

请记住,您不能将v-if设置在与v-for相同的标签上。