【问题标题】:React - Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: objectReact - 元素类型无效:需要一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:对象
【发布时间】:2018-10-01 15:45:15
【问题描述】:

我真的对此束手无策。我正在尝试构建和部署 Gatsby 站点,但在尝试构建静态 HTML 页面后出现上述错误。 CSS 和 JS 文件都可以毫无问题地构建。

我也收到了一个 WebpackError:WebpackError: Minified React error #130; 可以在这里找到:#130

Gatsby's Docs 建议这个#130 error 是由于在同一个文件中混合了importrequire 调用。我已经通过我的整个目录寻找类似的东西,但我找不到发生这种情况的任何地方。我似乎也没有 Gatsby 文档也针对此错误提出的任何其他问题。

有没有其他人遇到过这个问题,如果有,你的解决方案是什么?我不确定如何发布代码,因为我什至不知道这里有什么问题。一切都在本地编译和运行,在开发服务器上没有问题,这就是我难过的原因。代码如何在本地编译和工作完美但不能构建和部署?

【问题讨论】:

  • 您需要分享受影响的代码以便我们提供帮助
  • 我什至不知道要隔离和共享什么代码。错误没有说。这个项目中可能有 25+ 个 .js 文件。
  • 这可能不仅是由于混合了importrequire,还可能是由于忘记了要导出的组件甚至导入了错误的库,例如import { Foo } from "foo"; 而不是import Foo from "foo";,甚至是导入语法中的错字!所以,你需要更多地挖掘你的组件。
  • 如果您运行gatsby develop 并访问您的每个页面,您几乎肯定会遇到错误并且您会隔离有问题的组件。
  • @coreyward 谢谢你。我非常疯狂地试图解决这个问题,以至于我什至没有考虑运行该命令。

标签: reactjs webpack gatsby


【解决方案1】:

这已经解决了。对于使用 Gatsby 构建网站的任何人,问题是我的样式组件有一个 /styles 目录,位于 src/pages 目录中。

这会在构建时引发错误,因为 Gatsby 期望 /src/pages 目录内的 JS 文件只能导出 React 组件,而这些组件又代表网站的一个页面。

我将样式移到 /src 中,瞧。这导致了错误,因为样式化的组件是 JS 文件,并且如上所述,Gatsby 除了在 /src/pages 中导出的 React 组件之外,不期待其他任何东西。

【讨论】:

  • 这太疯狂了。我研究了半天!感谢您的解决方案。
  • @Parth 很高兴我能在这里提供帮助。这是一个键盘爆炸。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-05-07
  • 2020-11-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-07
  • 2021-06-30
  • 2020-11-06
相关资源
最近更新 更多