ant design Icon.createFromIconfontCN 添加iconFont 失败并报错问题解决

当AntD内置字体图标无法满足需求时,可利用Icon.createFromIconfontCN方法从阿里矢量图标库导入更多图标。需注意symbol代码放置位置,避免webpack打包路径错误。建议将symbol代码置于静态目录或CDN中。

当页面需要使用较多字体图标时, antd内置的字体图标库满足不了开发需求。这时我们需要去寻找一些外部字体图标。
antd 内部提供了一个跟阿里矢量图标衔接的方法: Icon.createFromIconfontCN,
通过这个方法,我可以去阿里矢量图标库找到开发所需要的图标,并生成symbol代码。通过 Icon.createFromIconfontCN方法生成图标组件

可以把symbol代码放入cdn 也可以放入本地。当 放入本地的时候需要注意路径的问题
import { Icon } from 'antd';

const IconFont = Icon.createFromIconfontCN({
  scriptUrl: './font_8d5l8fzk.js',
});

ReactDOM.render(
  <div className="icons-list">
    <IconFont type="icon-tuichu" />
    <IconFont type="icon-facebook" />
    <IconFont type="icon-twitter" />
  </div>,
  mountNode,
);
注意!

把symbol代码放到当前页面目录下,并且用./font_8d5l8fzk.js 引用,这样可能会无效。
因为不是import 引入 ,webpack打包的时候,并不会解析./font_8d5l8fzk.js的路径,symbol代码不会被打包进去,这时页面获取的./font_8d5l8fzk.js,是错误的。

解决方法 :

我们应该把symbol代码,放在静态目录下,或者cdn上。
放在项目的静态目录文件夹时,例如放在 assets文件夹js目录下,就可以使用./assets/js/font_8d5l8fzk.js
保证获取到正确的symbol代码

const IconFont = Icon.createFromIconfontCN({
  scriptUrl: '.assets/js/font_8d5l8fzk.js',
});
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值