javascript - 导入组件导致“元素类型无效:应为字符串(对于内置组件)或 ...”
问题描述
我为 Gatsby 创建了一个自定义组件。我只是想测试一些非常基本的功能。
import React from 'react'
import { graphql } from 'gatsby'
export default function Test() {
return <div>Hello World form Test()</div>
}
我将该组件作为一个包上传到 NPM,并尝试将其导入 Gatsby 站点。但是,我收到以下错误:
错误:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:对象。您可能忘记从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。
我正在导入组件,例如:
import Test from "gatsby-theme-thepighero"
这让我相信我即将解决,但我似乎无法以正确的方式导航到我的组件。该组件位于 /src/components 文件夹中名为 test.js 的文件中。
我还查看了此处发布的其他问题,例如Uncaught Error: Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function but got: object without much lucky.
编辑:我已经根据下面的评论清理了这个问题。
解决方案
如果要将组件导出为default
,则不需要在 import 语句中使用花括号。
export default function Test() {
return "Hello World form Test()"
}
必须导入为:
import Test from "gatsby-theme-thepighero"
关于您的问题,请尝试将您的组件包装在一个div
或一个空片段中:
export default function Test() {
return <div>Hello World form Test()</div> // or <>Hello World form Test()</>
}
推荐阅读
- python - 部分填充椭圆
- c - 错误:格式 '%lu' 需要一个匹配的 'long unsigned int' 参数 [-Werror=format=]
- xcode - 下载的图像显示为超大
- javascript - 无法在 angular6 中设置数组属性
- javascript - MathGame 未捕获类型错误:无法将属性“onclick”设置为 null
- javascript - 如何为对象键设置初始值?
- django - 可空布尔字段的 Django 过滤器
- django - 无效的 HTTP_HOST 标头 - Django
- lua - _ENV 的 Lua 奇怪行为
- c - 使用指针从方法中获取 char 数组值。