You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue.js使用axios获取数据后无法访问对象内元素报错求解

错误原因

你在data中初始化quotes的值为null,组件首次渲染时,axios异步请求还未返回结果,此时模板执行quotes[0]就相当于读取null的0属性,自然会抛出对应错误。直接输出{{ quotes }}不会报错是因为Vue对null值的渲染默认输出空内容,不会做额外的属性读取操作。

解决方法

你可以选择任意一种方案解决问题:

  • 方案1:给quotes设置合理的初始值,修改为初始为空数组即可
    修改app.js的data部分代码:
data() {
  return {
    quotes: [], // 把原本的null替换为空数组
  }
}

首次渲染时quotes[0]读取空数组的第0位会返回undefined,Vue渲染undefined为空内容,不会报错,等请求返回后页面会自动更新为对应的数据。

  • 方案2:使用可选链运算符规避空值读取
    直接修改index.html的模板代码:
<div id="app">
  <div>
    {{ quotes?.[0] }}
  </div>
</div>

可选链会在quotes为null/undefined时直接返回undefined,不会抛出错误。

  • 方案3:添加v-if判断,仅在quotes有值时才渲染对应内容
    修改index.html的模板代码:
<div id="app">
  <div v-if="quotes && quotes.length">
    {{ quotes[0] }}
  </div>
</div>

等待请求返回、quotes有有效值之后才会渲染该节点,避免初始渲染时报错。

内容的提问来源于stack exchange,提问作者Radlantic

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 09:30:04