后端传递的图标是字符串形式的 Ant Design 图标组件怎么避免被解析为普通文本

问题描述

后端传递导航,数据格式带了icon。如下

javascript 复制代码
const superNav = [
            {
              key: '1',
              icon: '<AppstoreOutlined />',
              title: '控制台',
              link: '/console',
            },
            {
              key: '2',
              icon: '<UserOutlined />',
              title: '账号管理',
              children: [
                {
                  key: 'sun1',
                  title: '权限管理',
                  link: '/account/permission',
                },
                {
                  key: 'sun3',
                  title: '用户管理',
                  link: '/account/role',
                },
              ],
            },
        ];

不做处理渲染的话结果如下

解决方案

导入需要的antd组件,在拿到后端数据后把原本的icon字符串替换为antd对应的icon组件

javascript 复制代码
import {
  UserOutlined,
  SecurityScanOutlined,
  IdcardOutlined,
  AppstoreOutlined,
} from '@ant-design/icons';

//省略

  const getNavList = ()=>{
      let navList = navData.filter((item,index)=>{
          if(item.icon=='<AppstoreOutlined />'){
            item.icon = <AppstoreOutlined />
          }else if(item.icon=='<SecurityScanOutlined />'){
            item.icon = <SecurityScanOutlined />
          }else if(item.icon=='<IdcardOutlined />'){
            item.icon = <IdcardOutlined />
          }else if(item.icon=='<UserOutlined />'){
            item.icon = <UserOutlined />
          }
          return item
      })
      setMenuData(navList)
  }
相关推荐
weixin_437918965 分钟前
前端String 数组和Math API大全
前端·javascript
阿正的梦工坊5 分钟前
【Typescript】03-函数对象与接口
前端·javascript·typescript
海上彼尚11 分钟前
Nodejs也能写Agent - 7.基础篇 - MCP
前端·javascript·人工智能·node.js
李剑一12 分钟前
我开发了一款防止摸鱼被发现的工具,现已开源
前端
启山智软13 分钟前
从零搭建商城系统前端:技术选型与核心架构实践
前端·架构
ZC跨境爬虫18 分钟前
跟着 MDN 学CSS day_5:掌握属性选择器的存否匹配与子字符串匹配
前端·javascript·css·ui·html
ZC跨境爬虫18 分钟前
跟着 MDN 学CSS day_4:(深入理解CSS选择器的核心机制)
前端·javascript·css·交互
Mapmost27 分钟前
三步搞定3DGS和3Dtiles单体化,这个免费工具能省你半天时间
前端
运维自动化&云计算30 分钟前
修复chrome把mp4视频识别为音频、firefox不能加载mp4问题
服务器·前端·iis·mp4播放