首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:元素类型无效:需要一个字符串(用于内置组件)],但got: undefined。下一站,反应

错误:元素类型无效:需要一个字符串(用于内置组件)],但got: undefined。下一站,反应
EN

Stack Overflow用户
提问于 2022-07-31 17:44:14
回答 1查看 63关注 0票数 0

我得到了这个错误,不知道我错过了什么!

我有三个文件,HeaderOption.js,HeaderOptions.js,Search.js

这是HeaderOptions.js的代码

代码语言:javascript
复制
import HeaderOption from "./HeaderOption";
import  DotsVerticalIcon from "@heroicons/react/outline";

import  MapIcon from "@heroicons/react/outline";
import  NewspaperIcon from "@heroicons/react/outline";
import  PlayIcon from "@heroicons/react/outline";
import  SearchIcon from "@heroicons/react/outline";
import  PhotographicIcon from "@heroicons/react/outline";

   function HeaderOptions() {
    return (
     <div>
        {/* Left */}
        <div className="flex space-x-6">
            <HeaderOption Icon={SearchIcon} tile="All" Selected /> 
            <HeaderOption Icon={PhotographicIcon} tile="Images" />
            <HeaderOption Icon={PlayIcon} tile="Videos" />
            <HeaderOption Icon={NewspaperIcon}  tile="News" />
            <HeaderOption Icon={MapIcon}  tile="Maps" />
            <HeaderOption Icon={DotsVerticalIcon}   tile="More" />

        </div>


        {/* Right */}
        <div className="flex space-x-4">
            <p className="link">Settings</p>
            <p className="Link">Tools</p>

        </div>
    </div>
    );
}

export default HeaderOptions;

HeaderOption.js

代码语言:javascript
复制
function HeaderOption({Icon, title, selected}) 
{
    return (
        <div className={`flex`}>
            <Icon className="h-4" />
            <p className="hidden sm:inline-flex">{title}</p>

        </div>
    );
         
} 
  

export default HeaderOption;

我得到上述错误,我检查了两次进口,帮助将不胜感激。

EN

回答 1

Stack Overflow用户

发布于 2022-07-31 17:59:12

我认为您可能不完全清楚ES6导入是如何工作的。

代码语言:javascript
复制
import foo from 'bar'

将模块“bar”的默认导出分配给foo。如果没有默认导出,foo将是未定义的。

代码语言:javascript
复制
import  MapIcon from "@heroicons/react/outline";
import  NewspaperIcon from "@heroicons/react/outline";
import  PlayIcon from "@heroicons/react/outline";
import  SearchIcon from "@heroicons/react/outline";

所有这些变量都将具有相同的值,默认导出,在您的示例中是未定义的。

使用命名导出(带大括号),一切都应该正常工作。

关于将来如何解决这个问题的建议。我不知道您做了什么来‘检查导入’,但是仅仅是记录或调试来查看这些导入变量的值,就可以准确地告诉您发生了什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73185622

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档