Ember 5.7/5.3+TypeScript注入store时出现Cannot read properties of undefined错误
解决Ember中注入Store服务时的TypeError问题
核心问题
你当前的服务文件命名和路径不匹配Ember的服务注册规则:
- 路由中使用
@service store;注入服务时,Ember会自动查找app/services/store.js文件 - 但你的服务文件实际是
app/services/service.js,这会导致Ember无法正确识别并加载Store服务,进而触发Cannot read properties of undefined (reading 'default')错误
解决步骤
修正服务文件名称
将app/services/service.js重命名为app/services/store.js,确保文件名和你要注入的服务名称store完全一致。确认服务导出代码
修正后的app/services/store.js保持原有代码即可,因为Ember Data的Store本身就是可直接导出的服务:export { default } from 'ember-data/store';清理缓存并重启服务
运行命令清理Ember缓存,避免旧的模块解析记录干扰:ember clear随后重启开发服务器:
ember serve验证依赖正确性
检查项目package.json,确保ember-data依赖已正确安装,且版本与你的Ember版本兼容。若缺失,可执行以下命令安装:npm install ember-data --save-dev
补充说明
你的路由、适配器、序列化器代码均无问题,只要服务文件的名称和路径正确,Store服务就能正常注入,不会再触发该错误。
内容的提问来源于stack exchange,提问作者rykantas
相关产品推荐
相关产品推荐

