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

React JS使用useState时出现userData is not defined报错如何解决?

错误原因

你当前的报错是因为useState初始化userData时没有设置初始值,默认值为undefined。组件首次渲染时,useEffect里的异步接口请求还没有执行完成,此时渲染逻辑直接访问userData.name,读取undefined的属性就会触发类型错误。

修复方案

方案1:给state设置初始默认值

将userData的初始化代码修改为:

const [userData, setUserData] = useState({});

空对象作为初始值,此时访问userData.name会返回undefined,不会抛出错误。

方案2:使用可选链语法访问属性

把模板里的{userData.name}替换为:

{userData?.name}

可选链?.会自动判断左边的变量是否为null/undefined,是的话直接返回undefined,不会抛出异常。

方案3:增加加载态判断

在return的渲染逻辑前先判断userData是否存在,不存在时显示加载提示:

if (!userData) {
  return <div>加载中...</div>
}

// 后面放置原来的return渲染逻辑

额外代码问题修复

你当前的接口状态判断逻辑存在错误,运算符优先级问题会导致状态校验不生效:

// 原错误写法,!优先级高于===,实际执行逻辑是 (!res.status) === 200,永远为false
if (!res.status === 200) 

// 修改为
if (res.status !== 200)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 01:27:02