后端传递的图标是字符串形式的 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)
  }
相关推荐
摸鱼仙人~14 分钟前
Vue Todo 实战练习教程(简略版)
前端·javascript·vue.js
dzj88815 分钟前
云朵字生成器-html
前端·css·html·云朵字
FlyWIHTSKY20 分钟前
Vue 3 单文件组件加载顺序详解
前端·javascript·vue.js
霪霖笙箫27 分钟前
真授之以渔:我是怎么从"想给文章配几张图",一步步做出一个可发布 skill 的
前端·人工智能·开源
yzin30 分钟前
【源码】【react】useCallback、useMemo、memo 原理
前端·react.js
CHU72903530 分钟前
扭蛋机盲盒小程序前端功能设计及核心玩法介绍
前端·小程序
毛骗导演33 分钟前
OpenClaw Gateway RPC 运行时:一个 WebSocket 协议引擎的深度解剖
前端·架构
码路飞34 分钟前
不会 Rust 也能玩 WebAssembly:3 个 npm install 就能用的 WASM 神器
前端·javascript·webassembly
sudo_jin35 分钟前
从“输入网址”到“帧级控制”:我对事件循环与主线程管理的终极认知
前端·javascript
flyfox36 分钟前
Kiro AI IDE 深度使用指南:从入门到高效开发
前端·人工智能·ai编程