我发现 ionicons/icons/index.js 文件中列出了 base64 文件。导入它意味着导入base64图像,这会使更改颜色变得困难,一个选项将是遮罩,但我需要一种简单的方法可以轻松更改颜色,所以我做了一个简单的hack。到目前为止,我找不到任何其他方法,但是这行得通。
制作一个组件并替换 base64 图像文件,这样我只会得到 svg 标记
import React from 'react'
export default function IonIconComponent(props) {
let icon = props.icon.replace("data:image/svg+xml;utf8,","");
return (
<div className="ion-icon-container">
<div className="icon-inner" dangerouslySetInnerHTML={{__html:icon}}/>
</div>
)
}
现在我可以在任何需要的地方使用相同的组件
import {createOutline} from 'ionicons/icons/index';
export const ActionComponent = withRouter((props) => {
const data = props;
return (
<>
<IonIconComponent icon={createOutline}/>
</>
)
})