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

Redux-Saga报错TypeError: 无法读取undefined的'data'属性如何解决?

问题修复方案

1. 报错 TypeError: Cannot read properties of undefined (reading 'data') 修复

问题原因

你定义的 loadUsersApi 异步函数只执行了axios请求,没有返回请求结果,导致saga中通过call(loadUsersApi)拿到的response为undefined,后续访问response.data自然触发空指针报错。

修复代码(usersApi.js)

import axios from "axios";

export const loadUsersApi = async () => {
  // 新增return返回axios请求的完整结果
  return await axios.get("http://localhost:5000/users");
};

2. redux-logger 不打印action修复

问题原因

store.js中的环境变量判断字段写错,标准的Node环境变量是process.env.NODE_ENV,你写的process.env_NODE_ENV是不存在的字段,判断永远返回false,logger不会被加入中间件队列,自然不会打印日志。

修复代码(store.js)

// 把错误的 process.env_NODE_ENV 改为 process.env.NODE_ENV
if (process.env.NODE_ENV === "development") {
  middleware.push(logger);
}

可选优化:错误捕获兼容性处理

当前catch块直接访问error.response.data,如果出现请求超时、跨域、后端服务未启动等场景,axios返回的error对象不存在response属性,会再次触发空指针报错,建议增加兼容判断:

// userSagas.js 的catch块修改
catch (error) {
  const errMsg = error.response?.data || error.message || '请求失败,未知错误';
  yield put(loadUsersError(errMsg));
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 11:27:04