Axios GET请求返回数据后属性访问返回undefined问题排查
问题分析与解决方案
问题核心是JavaScript大小写敏感性导致的:你代码中访问的属性名MedicalInsurancePackage(大驼峰,首字母大写)和API实际返回的medicalInsurancePackage(小驼峰,首字母小写)不匹配,因此会返回undefined。
直接修复方法
将遍历逻辑里的属性名替换为API返回的小驼峰格式即可:
response.data.map(row => { // 使用正确的小驼峰属性名 console.log(row.medicalInsurancePackage); // 其他业务逻辑 })
可选:统一命名风格(若需大驼峰)
如果你的代码规范要求使用大驼峰命名,可以在获取数据后统一转换属性名:
// 定义转换函数,把小驼峰属性转为大驼峰 const transformPackage = (pkg) => ({ MedicalInsurancePackage: pkg.medicalInsurancePackage, // 其他需要转换的属性也在这里处理 }); // 在useEffect中调用并转换数据 const fetchData = async () => { const response = await GetMedicalPackages(); const transformedData = response.data.map(transformPackage); // 将转换后的数据存入state };
额外验证点
- 确认
response.data是数组类型,而非嵌套在其他对象中(比如response.data.list),可通过控制台打印response.data确认数据结构。 - 若使用状态管理,确保存入state的是正确转换后的数据,而非原始返回值。
内容的提问来源于stack exchange,提问作者TheGrownDev
相关产品推荐
相关产品推荐

