最近在开发人事管理系统,其中菜单是需要动态渲染,针对不同角色授权不同的菜单权限。

路由由后端返回,格式如下:

[ { "path": "/", "name": "dashboard", "icon": "DesktopOutlined", "component": "./dashboard/workplace", }, { "name": "management", "path": "/auth", "icon": "TeamOutlined", "children": [ { "name": "username", "path": "/auth/user", "component": "./auth/user", "hideInMenu": false }, { "name": "role", "path": "/auth/role", "component": "./auth/role", "hideInMenu": false }, { "name": "permission", "path": "/auth/permission", "component": "./auth/permission", "hideInMenu": false } ] }, { "name": "organization", "path": "/organization", "icon": "ApartmentOutlined", "children": [ { "name": "department", "path": "/organization/department", "component": "./organization/department", "hideInMenu": false }, { "name": "position", "path": "/organization/position", "component": "./organization/position", "hideInMenu": false } ] }, { "name": "staff", "path": "/staff", "icon": "UserOutlined", "children": [ { "name": "roster", "path": "/staff/roster", "component": "./staff/roster", "hideInMenu": false } ] } ]

菜单可以正常生成,然而icon图标缺失...

网上度娘了一下,也没找到比较满意的解决方案, 回到官网看了在看了文档https://v4-pro.ant.design/docs/router-and-nav-cn

这种插件的方式在config.ts中配置的静态菜单是没问题的,但如果是后台传入的动态菜单这种方式并没有效果.调试发现 umi-plugin-antd-icon-config只在初始化的时候运行一次,为了解决动态菜单的icon加载问题,决定从插件入手,把核心代码写到 BasicLayout.

在BasicLayout 引入

import allIcons from '@@/plugin-antd-icon/icons';

菜单函数处理

// 解决图标问题

// const toHump = (name) =>name.replace(/-(\w)/g, (all, letter) => letter.toUpperCase());

const menuDataRender = (menuList) =>

menuList.map((item) => {

if (item.icon) {

const { icon } = item;

// const v4IconName = toHump(icon.replace(icon[0], icon[0].toUpperCase()));

const NewIcon = allIcons[icon];

if (NewIcon) {

try {

// eslint-disable-next-line no-param-reassign

item.icon = React.createElement(NewIcon);

} catch (error) {

console.log(error);

}

}

}

保存就解决了icon图标问题

Ant Design Pro 4 动态菜单icon丢失解决办法相关推荐

  1. ant design pro vue 动态路由 流程详解

    ant design pro vue 动态路由 流程详解 前言 流程图 流程1 src/permission.js 流程2 src/store/modules/user.js 流程3 src/perm ...

  2. ant design pro vue左侧菜单自定义图标

    做ant design pro vue项目的时候突然想修改左侧菜单的图标,在修改途中发现源码中提供的方法方法居然不生效(如下所示) 在src/assets/icons文件夹中下载svg图标 在src/ ...

  3. ant design pro实现动态路由以及权限的控制

    dynamic-menu-router ant design pro动态路由权限,目前基于ant design pro1.4.4版本,只用于左侧菜单权限的设置和按钮权限设置,关于最新版本权限的更新,敬 ...

  4. ant design pro侧边栏子菜单添加不成功的解决办法

    项目场景: Ant design pro侧边栏添加子菜单 问题描述: 在企业工作中 Ant design pro侧边栏添加子菜单如果不成功要检查以下几个部分 原因分析: 刚进公司的新员工如果接触到新的 ...

  5. Ant Design Pro组件pro-layout菜单自定义icon,以及二级菜单不显示icon处理

    使用IconFont IconFont官网,进入后我们登陆,然后创建一个项目管理 图中的连接是Icon的地址,需要把它放到我们项目配置下的iconfontUrl参数下 注意!!! 创建项目时 Font ...

  6. 同志们,免费版的Ant Design Pro Vue3 来啦

    Vue3也出了一段时间了,于是照着ant pro vue搭个免费的vue3版 希望大家喜欢 基于 Vite2 Vue3 Ant-Design-of-Vue2 TS实现的 Ant Design Pro ...

  7. UmiJS TypeScript Ant Design Pro v4 从零开始实战教程(63 个视频)

    UmiJS & TypeScript & Ant Design Pro v4 从零开始实战教程(63 个视频) Antd Pro 是国内最流行的前端后台框架,使用它可以轻易搭建一个超级 ...

  8. Umi v3 Ant Design Pro v5 从零开始实战视频教程(34 个视频)

    Umi v3 & Ant Design Pro v5 从零开始实战视频教程(34 个视频) Umi v3 & Ant Design Pro v5 视频教程,从零开始学习,搭建一个完整的 ...

  9. Ant Design Pro 菜单自定义 icon

    Ant Design Pro 官方文档说明 在菜单中使用自定义的 icon 由于 umi 的限制,在 router.config.js 是不能直接只是用组件的,Pro 中暂时支持 使用 ant.des ...

最新文章

  1. RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2- “Tab”标签新增可“最大化”显示功能...
  2. 局部特征(6)——局部特征描述汇总
  3. HDU 5919 Sequence II 主席树
  4. 初识机器学习——吴恩达《Machine Learning》学习笔记(八)
  5. 如果你女朋友不让你看她卸妆......
  6. Collections 工具类常见方法
  7. laravel 错误与日志
  8. 坚持的力量 第十一篇
  9. OpenCV3学习(6.1)——边缘检测---Canny,Sobel,Prewitt,Robert,Laplace,LOG,DOG算子
  10. Nature 子刊重磅:腾讯与钟南山团队发布新冠危重症 AI 预测模型 Cox
  11. chmod命令(chmod函数)自动清除设置用户ID位和设置组ID位
  12. 游戏开发筑基之特殊输入函数的妙用(C语言)
  13. 数据太大?你该了解Hadoop分布式文件系统
  14. 19年Q2了,运维的你有啥计划吗?
  15. c++ 定时器_「正点原子Linux连载」第十九章定时器按键消抖实验
  16. KVM实验二 pepsi-wyl
  17. 程序员情人节脱单指南
  18. lego_loam 代码阅读与总结
  19. 三学生上课玩手机遭批 喊十几人围砍老师
  20. 达观智能文本分析系统,赋能企业大数据加工处理

热门文章

  1. pm2在服务器上部署express项目
  2. 数学之美—细数 傅里叶变换 原理
  3. Li‘s 影像组学视频学习笔记(29)-ICC的计算
  4. 安全威胁分类STRIDE
  5. [渝粤教育] 中国地质大学 Java语言程序设计 复习题
  6. Web前端-vue 开发命名规范
  7. 各类数据库数字与文本转换
  8. Python和C语言哪个更容易学,感觉学了C语言有点难,只学过C语言的大学生很迷茫?
  9. django 重置密码
  10. 智慧金融系统软件需求规格说明(3.20终版)