主要的想法是只在需要的时候导入react材质的UI图标,或者在编译时我们不知道图标名称的时候动态导入。(让我们保证我们有有效的图标名称)。
我的方法是使用带有动态路径的require语句:
const IconComponent = require(`@material-ui/icons/${icon}`).default;
字符串
这很好,但出现了一些警告。
./node_modules/@material-ui/icons/utils/Uplink SvgIcon.d.ts 3:8模块解析失败:意外的标记(3:8)您可能需要适当的加载程序来处理此文件类型。|从“@material-ui/core/SvgIcon”导入SvgIcon;| declare function SvgIcon(path:React.ReactNode,DisplayName:string):typeof SvgIcon;||导出默认值“”SvgIcon“;
./node_modules/@material-ui/icons/index.d.ts 4:5 Module parse failed:Unexpected token(4:5)您可能需要适当的加载程序来处理此文件类型。|从“@material-ui/core/SvgIcon”导入SvgIcon;|
type SvgIconComponent = typeof SvgIcon;||export const_parameter_alarm:SvgIconComponent;
我的问题是:我们如何避免这些警告并以适当的方式进行动态导入?
2条答案
按热度按时间z4bn682m1#
你可以为它创建一个钩子,如下所示。
请注意:
import * as icons from '@material-ui/icons'
与const * as icons = require('@material-ui/icons').default;
相同选项2
型
nwnhqdif2#
一是
字符串
二方法是
型
你可以调整的一个很好的例子是
型