我是新的React,并试图创建一个菜单栏的排序。所有类似的问题似乎是旧的或不太是我需要的。无论如何,我不能得到这个工作,所以请帮助弄清楚这一点。
我正在使用react-icons,并希望动态命名组件,以便在此循环中使用图标,但〈{瓦尔.icon} /〉抛出错误:“'...' expected.”我能做些什么来使这个工作?我似乎也不能在return语句中声明变量来解决这个问题,或者至少我不知道如何做到这一点。有什么想法吗?
const values = [
{ id: 1, text: "Home", icon: "MdHomeFilled" },
{ id: 2, text: "Schedule", icon: "MdEditCalendar" },
{ id: 3, text: "Scores", icon: "MdSportsTennis" },
{ id: 4, text: "Stats", icon: "IoIosStats" }
];
return (
<>
<ul>
{values.map((val) => (
<li onClick={() => setActiveId(val.id)}>
<div className={activeId === val.id ? "NavLinkBox selected":"NavLinkBox"}>
<div className="navLinkBoxHdr"><{val.icon} /></div>
<div className="navLinkBoxCnt">{val.text}</div>
</div>
</li>
))}
</ul>
2条答案
按热度按时间3z6pesqy1#
你不能仅仅使用一个组件名(比如
string
)来渲染一个组件。为了呈现它,你需要像往常一样导入它,然后将它转换成一个大写的变量。例如:
brccelvz2#
这样使用它: