如何通过名称动态创建图标?

Dam*_*ati 1 reactjs material-ui

我正在动态生成菜单,图标名称是可能的配置之一:但是如何动态调用图标而不显式导入它?

let { name, icon } = menuEntry;
<ListItem primaryText={name} leftIcon={what here?} />
Run Code Online (Sandbox Code Playgroud)

小智 5

在我的一个项目中,我有以下内容:

import * as Icons from 'material-ui/svg-icons';
Run Code Online (Sandbox Code Playgroud)

然后我可以使用任何我想要的图标,如下所示:

let Icon = Icons[iconName];
return (
  <Icon />
);
Run Code Online (Sandbox Code Playgroud)

iconName需要是有效的图标名称。在你的例子中它看起来像这样:

let { name, icon } = menuEntry;
<ListItem primaryText={name} leftIcon={Icons[icon]} />
Run Code Online (Sandbox Code Playgroud)

  • 哦!那么这是不行的...因为 svg 图标是 ~4mb :( (2认同)