【发布时间】: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.exports和import不能很好地协同工作,一些建筑系统有问题(他们将默认函数包装到一个对象中):这可能是问题所在。您使用的是两个不同的构建版本吗? -
@JonasWilms 我不这么认为,应用程序非常相似,都使用
create-react-app作为样板。是的,我确保我在两个应用程序中使用相同的包版本
标签: javascript npm