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

API返回error.message为undefined致程序崩溃的解决办法

问题解决:登录成功时因data.error为undefined导致程序崩溃

你当前的代码逻辑存在顺序错误:当登录成功时data.error本身就是undefined,直接访问data.error.message会触发报错——因为undefined没有message属性,此时后面的判断条件根本没机会执行。

正确的做法是先确认data.error存在,再去读取它的message属性,两种可行写法:

写法一:先判断data.error是否存在

if (data.error && data.error.message === 'EMAIL_NOT_FOUND') {
  setError({
    title: "EMAIL_NOT_FOUND",
    message: "This email address is not registered.",
  });
  setIsLoading(false);
  return;
}

写法二:使用可选链操作符(ES2020+支持)

if (data.error?.message === 'EMAIL_NOT_FOUND') {
  setError({
    title: "EMAIL_NOT_FOUND",
    message: "This email address is not registered.",
  });
  setIsLoading(false);
  return;
}

第一种写法通过data.error的存在性判断,避免了在data.error为undefined时访问属性;第二种用可选链?.会自动处理data.error为undefined的情况,直接返回undefined,不会触发报错,代码更简洁。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 18:05:17