【Antd Pro V5菜单动态生成,二级菜单图标未显示问题】

Antd Pro V5菜单动态生成,二级菜单图标未显示问题

> 这边项目使用的是阿里巴巴矢量图标库作为菜单图标的,需注意

问题示例

在这里插入图片描述

解决方案

官方issue 搜索

https://github.com/ant-design/ant-design-pro/issues/10178

在这里插入图片描述

// 二级icon
menuItemRender: (menuItemProps, defaultDom) => {
  if (menuItemProps.isUrl || !menuItemProps.path) {
    return defaultDom;
  }
  return (
    <Link to={menuItemProps.path}>
      {menuItemProps.pro_layout_parentKeys &&
        menuItemProps.pro_layout_parentKeys.length > 0 &&
        menuItemProps.icon}
      {defaultDom}
    </Link>
  );
},
使用配置后还是存在问题,问题示例

在这里插入图片描述

最终解决方案
  1. 将图标库的css资源引入到项目中

    • 下载样式文件,进行解压
      在这里插入图片描述

    • 解压后将资源文件放到项目的src目录下

      在这里插入图片描述

    • 在app.tsx文件中引入样式文件

      import './iconfont/iconfont.css';
      
  2. 重写菜单渲染配置

        // 二级icon
        menuItemRender: (menuItemProps, defaultDom) => {
          if (menuItemProps.isUrl || !menuItemProps.path) {
            return defaultDom;
          }
          const iconClassName = menuItemProps.icon ? `iconfont ${menuItemProps.icon}` : null;
          return (
            <Link to={menuItemProps.path} style={{ display: 'flex', alignItems: 'center' }}>
              {menuItemProps.pro_layout_parentKeys && menuItemProps.pro_layout_parentKeys.length > 0 && iconClassName && (
                <span className={iconClassName} style={{ marginRight: 8 }} />
              )}
              {defaultDom}
            </Link>
          );
        },
    
  3. 问题解决,大功告成
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值