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

React使用Axios请求API渲染时报Cannot read properties of undefined错误如何解决

问题原因
  • 你给model对应的useState没有设置初始值,第一次组件渲染时model的值为undefined,此时直接读取undefined.slug就会抛出TypeError。
  • 你看到控制台能打印出model.slug是浏览器控制台的特性:控制台打印引用类型数据时保存的是对象引用,等你手动点击展开查看属性时,异步请求已经执行完成,setModel已经给model赋值成功,所以能看到slug的值,实际第一次渲染执行console.log的时候model还是undefined。
解决方法

你可以任选以下任意一种方案解决:

  1. 给useState设置初始空对象
    修改useState声明为:
const [model, setModel] = useState({})

读取空对象的不存在属性只会返回undefined,不会抛出错误。

  1. 使用可选链操作符做安全访问
    修改渲染部分的代码为:
return (
  <div>
   {model?.slug} : {model?.name}
  </div>
)

可选链?.会在左侧值为undefined/null时直接返回undefined,不会尝试读取后续属性,避免报错。

  1. 增加加载状态判断
    在return前先判断model是否存在,不存在时渲染加载提示:
if (!model) return <div>数据加载中...</div>

return (
  <div>
   {model.slug} : {model.name}
  </div>
)

这种方式还可以给用户明确的加载提示,体验更好。

内容的提问来源于stack exchange,提问作者Yusuf Yeşilyurt

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 17:39:03