在一个react应用程序(由vite创建)中,我需要一个类别列表来创建导航菜单。我在另一个扩展名为**. js的文件中创建了这个列表。以对象数组**的形式:
// constants.js
import { MdHomeIcon, MdCodeIcon } from "react-icons/md";
export const categories = [
{ name: "New", icon: <MdHomeIcon /> },
{ name: "Coding", icon: <MdCodeIcon /> },
{ name: "ReactJS", icon: <MdCodeIcon /> },
];
react-icons软件包已安装。
我的问题是:在执行任何操作之前,react应用程序在控制台中返回语法错误:* * 未捕获的语法错误:应为表达式,但在constants.js中得到"〈"。
解决该问题后:在Sidebar.jsx中,我想Mapcategories**以构建一个包含名称和图标的列表。
// Sidebar.jsx
import { categories } from "./constants.js";
export const Sidebar = () => (
<div>
{categories.map((category) => (
<div>
<span>{category.icon}</span>
<span>{category.name}</span>
</div>
))}
</div>
);
3条答案
按热度按时间cetgtptt1#
您不能将JSX包含在
js
文件中,但您的图标是从“react-icons/md”导入的,您可以将它们用作JSX元素。如果要在
constants.js
中使用这些图标,请尝试将其重命名为constants.jsx
bpsygsoo2#
Map循环中存在错误。
你不能在map循环中返回两个子元素。解决这个问题的一个方法是使用React Fragment来 Package 那些组件。
https://reactjs.org/docs/fragments.html
另外,你必须警惕列表和循环中的关键属性。
https://reactjs.org/docs/lists-and-keys.html
第三件事,将Icon调用作为obj的值附加,然后将其作为react组件调用
最后但并非最不重要的一点是,您的代码中存在语法错误。循环的最后一行缺少一个
ibps3vxo3#
可以根据需要编辑代码