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

React运行报错Element type is invalid,该如何排查解决?

React站点运行报错修复方案

报错信息:
Error: Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: undefined. You likely forgot to export your component from the file it's defined in, or you might have mixed up default and named imports.
Check the render method of Home。

该错误说明Home组件渲染时用到了一个值为undefined的组件,不符合React对组件类型的要求,90%以上的情况是组件的导出和导入语法不匹配,按照以下步骤排查即可:

  • 优先排查Content组件的导入导出
    你在Home.js中使用了命名导入语法引入Content:
import {Content} from '../components/Content/Content';

如果Content.js中是用export default导出的组件,导入时加了大括号就会拿到undefined,解决方案二选一:

  • 保留Content的默认导出,把导入语句改成import Content from '../components/Content/Content';(去掉大括号)
  • 保留Home中的命名导入写法,把Content组件的导出改成export const Content = () => {}(去掉default)
  • 依次验证其他组件的导入导出匹配性
    依次检查Features、Hero两个组件,你在Home中用的是默认导入写法(无大括号),如果对应组件文件不是用export default导出的,同样会触发该错误,调整导入写法和导出方式对应即可。
  • 验证HeroData导出正确性
    检查../data/HeroData文件中是否确实对heroOne、heroTwo、heroThree做了命名导出,和Home中的命名导入写法对应。

快速定位方法

你可以在Home.js的导入语句后加一行打印,快速定位出问题的组件:

console.log('Content:', Content, 'Features:', Features, 'Hero:', Hero, 'heroOne:', heroOne)

控制台打印为undefined的项就是出错的目标,直接调整对应导入导出即可。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 09:36:04