【发布时间】:2021-03-24 09:51:12
【问题描述】:
我正在尝试使用 react 制作 Twitter 克隆,但遇到以下错误。
元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。您可能忘记从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。
检查SidebarOption的渲染方法。
这是我的代码:-
app.js
import "./styles.css";
import Sidebar from "./components/Sidebar";
export default function App() {
return (
<div className="App">
<Sidebar />
</div>
);
}
Sidebar.js
import React from "react";
import SidebarOption from "./SidebarOption";
import HomeIcon from "@material-ui/icons/Home";
import ExploreIcon from "@material-ui/icons/Explore";
import NotificationsActiveIcon from "@material-ui/icons/NotificationsActive";
import EmailIcon from "@material-ui/icons/Email";
import BookmarksIcon from "@material-ui/icons/Bookmarks";
import ListIcon from "@material-ui/icons/List";
import AccountCircleIcon from "@material-ui/icons/AccountCircle";
import MoreHorizIcon from "@material-ui/icons/MoreHoriz";
function Sidebar() {
return (
<div>
<SidebarOption Icon={HomeIcon} text="Home" />
<SidebarOption Icon={ExploreIcon} text="Explore" />
<SidebarOption text="Notifications" />
<SidebarOption text="Message" />
<SidebarOption text="Bookmarks" />
<SidebarOption text="List" />
<SidebarOption text="Profile" />
<SidebarOption text="More..." />
<SidebarOption text="Tweet" />
</div>
);
}
export default Sidebar;
SidebarOption.js
function SidebarOption({ text, Icon }) {
return (
<div>
<Icon />
<h2>{text}</h2>
</div>
);
}
export default SidebarOption;
【问题讨论】:
-
<Icon />/ExploreIcon是什么,如果它作为组件传入,你肯定需要{ Icon }代替吗?
标签: javascript reactjs