当前位置: 首页 > 知识库问答 >
问题:

访问嵌套对象时出现Vue警告

东门彬
2023-03-14

我不知道为什么访问嵌套对象时会收到Vue警告。

{{ user.area.name }}

[Vue警告]:渲染错误:"TypeError:无法读取未定义的属性'name'"

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

仅仅访问对象没有任何警告。

{{ user.name }}

有什么建议吗?

共有3个答案

庾兴发
2023-03-14

您还可以使用三元运算符{{user.area?user.area.name:“}}

施驰
2023-03-14

您的用户不包含区域,因此当您尝试读取该区域时,它是未定义的。您不允许在定义的事物上使用运算符,因此当您在该事物上使用.name时,您会得到您得到的错误。

屈宏爽
2023-03-14

这里完全是猜测,但让我们看看我是否正确。。。

假设您在组件/Vue实例datainitialiser中有类似的东西。。。

data () {
  return {
    user: {}
  }
}

然后异步填充该对象,例如

mounted () {
  setTimeout(() => { // setTimeout is just an example
    this.user = {
      ...this.user,
      area: {
        name: 'foo'
      }
    }
  }, 1000)
}

如果你的模板有

html prettyprint-override">{{ user.area.name }}

当它在异步任务完成之前最初呈现时,您将尝试访问区域名称属性,该属性未定义。

例如~http://jsfiddle.net/tL1xbmoj/

你的选择是...

>

data () {
  return {
    user: {
      area: { 
        name: null 
      } 
    }
  }
}

例~http://jsfiddle.net/tL1xbmoj/1/

使用条件渲染来防止错误

<span v-if="user.area">{{ user.area.name }}</span>

例如~http://jsfiddle.net/tL1xbmoj/2/

 类似资料:
  • 我从foursquare收到了一个json形式的响应。我尝试访问对象的某些部分,但没有成功。如何访问对象的地址?这是我试过的代码。 以下是json响应的一个示例: 完整的回应可以在这里找到

  • 问题内容: 我有基于json的数据结构,其中包含嵌套对象。为了访问特定的数据元素,我一直将对对象属性的引用链接在一起。例如: 如果未定义b或bc,则将失败并显示错误。但是,我想获得一个值(如果存在的话),否则只是未定义。无需检查链中每个值是否存在的最佳方法是什么? 我想尽可能地保持这种方法,所以我不必添加大量的辅助方法,例如: 要么 我也想尝试避免使用try / catch构造,因为这不是错误,因

  • 问题内容: 不固定f1.png值时如何访问inval值。即文件名可以是任何东西,它不知道,所以我如何使用Java访问此JSON中各种文件的inval字段值? 问题答案: 请尝试以下代码, 希望它能解决您的问题

  • 首先,如果这已经发布,请道歉。我花了一些时间研究,但还没有找到解决方案。 我的目标是访问vb.net中web请求的各种JSON响应中的数据。我遇到了嵌套响应的问题;例如: 我的课程是这样的: 反序列化JSON: 这似乎工作正常,但是我不知道如何访问< code>href值,在本例中是“https://example.com/test2/”。

  • 我正在使用Spring Boot和Thymeleaf为我的应用程序创建一个登录页。为此,我需要呈现所有包含容器的主机对象的列表。以下是相关代码: 现在,我想遍历所有服务器,并在表中显示关于每个容器的信息。我的Thymeleaf模板如下所示: 我的问题是访问容器属性的部分(由注释标记)。每次我都会得到一个SpringEL异常。如果我删除并将其替换为会显示容器的String版本,因此我可以访问对象和它

  • 免责声明:这是我第一次尝试构建MVVM应用程序,我以前也没有使用过vue.js,所以我的问题很可能是一个更根本的问题造成的。 在我看来,我有两种带复选框的块: 类型1:块/复选框 类型2:块/标头/复选框 底层对象的结构如下所示: 我的目标 选择复选框: 用户单击复选框,复选框被选中(selected=true) 将激发一个方法来检查是否需要禁用任何其他复选框(disabled=true)。(如果