Write problem & solution of front end we may meet. 主要记录前端学习和实践过程中踩过的各种坑.
This project is maintained by soolaugust
最新版本已经支持导入,参照增加IconFont组件、菜单图标可以使用自己的IconFont项目图标, 直接将iconfont项目文件下载到项目中,比如 ‘/public’下面,然后在’src/defaultSettings.js中引入,例如”iconfontUrl: ‘/iconfont.js’,”,然后直接在菜单栏使用即可, 比如 icon: icon-test
最近因为项目的要求,需要更改 Ant Design Pro 的菜单栏图标。找了一大圈资料,踩了不少的坑,最后才完成。所以这里记录下过程。
以“Ant”为例,比如说我们需要下面的这几个图标:
首先加入到购物车中,然后点击购物车,如下图所示:
选择添加到项目中,然后新建项目:
这时会跳转到项目页面,点击“更多操作”选择“编辑项目”:
编辑好了之后,选择下载到本地,然后解压后将里面iconfont*开头的文件放到项目的/public
下面,如下图所示:
然后在 /src/global.less
中添加下面的代码(这里其实可以不在这里添加,新建一个也可以)
@import '/iconfont/iconfont.css';
:global(.anticon) {
&:before {
font-family: 'anticon', 'demo' !important; // 'demo' 对应上面编辑项目时的 'Font Family'
display: inline-block;
}
}
然后在/src/components/Sidemenu/BaseMenu.js
中改写getIcon
逻辑:
const getIcon = icon => {
if (typeof icon === 'string' && icon.indexOf('http') === 0) {
return <img src={icon} alt="icon" className={styles.icon} />;
}
if (typeof icon === 'string' && icon.indexOf('anticon-') === 0) {
return <Icon type={icon.replace('anticon-', '')} className="demo" />;
}
if (typeof icon === 'string') {
return <Icon type={icon} />;
}
return icon;
};
这样更改完成后就可以直接在router.config.js
上使用自己定义的图标了,比如iconfont项目里的anticon-ant-cloud
(可以直接到iconfont项目页面中选择复制代码):
...
icon: "anticon-ant-cloud"
...