Antd Pro menu菜单使用自定义icon

3,027 阅读1分钟

在日常开发中,menu icon主要由三种方式:

  1. 使用antd自带的icon

  2. 使用iconfont中的icon

  3. 使用自定义的svg

在antd pro的文档中描述了前两中方式,但是使用自定义svg的方式并没有在文档中出现。

我们知道antd pro中的菜单是在pro-layout的基础上又封装了一层,将很多配置项注入到pro-layout中。

现在需要将自定义的icon传给pro-layout,但是由于umi的影响,又不能直接在route配置中直接写组件。所以需要在antd-pro的入口文件中,将route中的icon手动转换成pro-layout MenuDataItem中icon所接收的ReactNode。

pro-layout中menu的类型

接下来就是调用pro-layout中的api去修改菜单数据MenuData,具体来说有两个api都能够修改,分别是menuDataRenderpostMenuData

image.png

image.png

这两个api据官方文档描述,在不需要国际化的情况下,使用postMenuData修改数据能显著提升性能