我正在尝试使用 SVGR 将我的 svg 转换为反应组件,我需要使用<SvgIcon />
Material UI 并将转换后的组件作为道具传递给它。这还没有错。
但是,SVGR 将这些组件保存在一个名为 svgCom 的文件夹中,例如,在该文件夹内还有index.js
转换后的 svg 组件。
我需要将所有这些组件包装在其中,<SvgIcon>
因此我不必<SvgIcon/>
为每个用例再次包装此图标;到目前为止,我尝试在template.js
SVGR 中添加这个组件,但是在尝试解析时它会抛出一个错误。
这是做这种事情的最好方法还是有更好的方法?如果我的 template.js 有什么问题?
这是我的 Templete.js:
function template(
{ template },
opts,
{ imports, componentName, props, jsx, exports },
) {
return template.ast`
${imports}
import { SvgIcon } from "@material-ui/core";
///////////////////////////////////// error here
const ${componentName} = (${props}) => <SvgIcon component={${jsx}} />
${exports}
`
}
module.exports = template
谢谢你。