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

React项目中导入JavaScript对象后属性返回undefined的问题排查

解决React中导入data.js后对象为空、属性访问返回undefined的问题

你的属性访问方式(data.work 或 data["work"])本身是完全正确的,问题大概率出在data.js的导出逻辑或者experience.js的导入逻辑上,咱们一步步梳理:

1. 检查data.js是否正确导出了对象

你只在data.js里定义了const experience,但如果没有显式导出,其他文件是无法获取到这个变量的。这会导致你导入后拿到的是模块默认的空对象,自然访问属性会返回undefined。

修复方案:选择合适的导出方式

方式一:命名导出

在data.js里给变量加上export关键字:

// data.js
export const experience = { 
  work: [ { content }, { content } ], 
  event: [ { content }, { content }, { content } ] 
}

然后在experience.js里用命名导入的方式获取:

// experience.js
import { experience } from './data.js';

console.log(experience.work); // 现在应该能正常打印数据了

方式二:默认导出

如果只想导出这一个对象,也可以用默认导出:

// data.js
const experience = { 
  work: [ { content }, { content } ], 
  event: [ { content }, { content }, { content } ] 
}
export default experience;

对应的导入方式(变量名可以自定义,比如你习惯的data):

// experience.js
import data from './data.js';

console.log(data.work); // 此时就能正确访问属性了

2. 确认导入的变量名与导出匹配

如果你用了命名导出,却在导入时没加花括号、或者变量名写错,也会导致拿到空对象。比如:

// 错误示例:命名导出却用默认导入
import experience from './data.js'; // 这样拿到的是模块默认导出,不是你定义的experience对象

总结

你的核心问题是没有正确完成模块的导出导入流程,导致实际拿到的不是你定义的experience对象,而是一个空的默认模块对象。调整导出导入方式后,你原本的属性访问逻辑就能正常工作了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 15:04:10