在Vue 中调用数据出现属性不存在的问题

在Vue中,请求数据时可能出现属性不存在的报错,因为数据通常是异步加载的。例如,从JSON获取学生分数时,如果没有预先声明数据类型,可能会导致`undefined`错误。解决方法是确保在尝试访问属性之前,数据已经加载完成,或者使用条件渲染避免在数据未加载时尝试渲染不存在的属性。
摘要由CSDN通过智能技术生成

这已经是我在调用数据时趟过几次的坑了,索性记录下来防止后面再犯;

一般我们请求数据来渲染一个页面的时候,请求下来的数据基本上都是数组或是对象,再通过列表循环和插值表达式渲染的页面;在data 中提前声明接收数据的变量时若为指定类型,就直接将数据渲染到页面,在浏览器的控制台基本上都会出现 “某某属性未定义” 的英文报错;下面举个例子:

先假设请求的是下面的json 数据:

{
  "code": 0,
  "data":[
    {
      "name": "Buccky",
      "age": 16,
      "score": 77
    },
    // 。。。。。
  ]
}

数据请求下来将data的学生分数选项 存到 scoreInfo中,如下:

new Vue({
  data(){
    return {
      scoreInfo: []
    }
  }
})

这里为了说明问题,不用列表渲染,我们只取第一条数据中的name进行渲染,如果像这样下面这样写的话,就会出现上面说的那种报错:

...
<span>{
    { scoreInfo[0].name }}</span>

这样写后

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值