【问题标题】:invalid element type error with imported react component导入的反应组件无效元素类型错误
【发布时间】:2019-07-09 13:01:09
【问题描述】:

我在两个不同的应用程序中使用从 npm 包中导入的组件。

在一个应用程序中,它运行良好,在另一个应用程序中,它引发了这个错误:`

Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object.

包版本和导入方法都一样,怎么只在一个app里提升?

导入的元素是一个 React 组件,捆绑在 commonJS 中,它是唯一的导出元素,因此我使用它来导入它

import ProductImage from '@balibart/product-image'

在这两种情况下,我都传递了相同的道具。该组件应该呈现 SVG,并使用

导出
module.exports = [a function]

我知道该组件工作得很好,因为如果我将其内容复制/粘贴到单独的文件中并使用其路径导入它,它就会被渲染得很好。我看到的唯一选择是 create-react-app 导入它的方式,但我很确定我为我的两个应用程序使用了相同的 CRA 版本...

【问题讨论】:

  • 您能给我们提供更多信息吗?尤其是代码会很有用。
  • @Tmba 我添加了导入和导出方法,并确保组件在两个应用程序中以相同的方式导入
  • 这两个应用程序的 package.json 依赖版本是什么样的?使用 semver,您实际上可能正在使用不同版本的包。
  • module.exportsimport 不能很好地协同工作,一些建筑系统有问题(他们将默认函数包装到一个对象中):这可能是问题所在。您使用的是两个不同的构建版本吗?
  • @JonasWilms 我不这么认为,应用程序非常相似,都使用create-react-app 作为样板。是的,我确保我在两个应用程序中使用相同的包版本

标签: javascript npm


【解决方案1】:

好的,如果有人遇到此问题,请确保您的 webpack 版本在您的两个应用程序上都相同。我的一个应用程序是 3.5.1,另一个应用程序是 3.8.1,这就是我的导入问题的原因。

【讨论】:

    猜你喜欢
    • 2021-10-20
    • 1970-01-01
    • 2020-06-24
    • 2016-02-06
    • 2020-01-12
    • 1970-01-01
    • 2023-02-20
    • 2019-10-17
    • 2020-11-02
    相关资源
    最近更新 更多