我在我的反应应用程序中使用 react-icons 包。从某种意义上说,它可以正常工作,您可以通过以下方式导入和使用字体真棒图标:
import { FaTag } from 'react-icons/fa';
...
<FaTag />
但是,我希望能够在更可重用的组件中生成这些图标。例如,支持我有一个菜单列表,每个项目都有一个图标。该列表作为数组发送,其中一项是标题,一项是链接地址,一项是图标名称。没有动态方法,你必须这样做......
const SidebarMenuItem:FC<propsObj> = ({title, link, icon}):ReactElement => {
return (
<li>
<Link to={link}>
<span>{title}</span>
{ (icon==="Tag") && <FaTag /> }
{ (icon==="QuestionCircle") && <FaQuestionCircle /> }
{ (icon==="UserAstrounaut") && <FaUserAstronaut /> }
{ (icon==="InfoCircle") && <FaInfoCircle /> }
{ (icon==="List") && <FaList /> }
{ (icon==="Cogs") && <FaCogs /> }
</Link>
</li>
)
}
export default SidebarMenuItem;
我希望能够动态地做到这一点。我对包含我需要使用的每个图标的大型导入语句没有问题。在那之后我想做的是……
const SidebarMenuItem:FC<propsObj> = ({title, link, icon}):ReactElement => {
const iconElement = React.createElement(icon, null);
return (
<li>
<Link to={link}>
<span>{title}</span>
<div>{iconElement}</div>
</Link>
</li>
)
}
export default SidebarMenuItem;
这实际上会导致正确的组件被渲染。但是,没有图标出现,也没有 svg 图形。似乎在编译过程的某个地方,字体真棒包在运行创建组件之前渲染了图形?
有没有办法解决?