一个叫Y的程序猿 2021-09-10 14:34 采纳率: 100%
浏览 1032
已结题

element中el-menu-item图标不显示

element中的el-menu-item这个标签在没有二级菜单的时候,折叠后一级菜单图标不显示,请问这是啥问题
就算我把图标写成固定的,也是一样的不能显示

在线等

这是渲染菜单的代码

<el-menu :default-active="$route.path" unique-opened class="el-menu-vertical-demo" router
                                background-color="#304156" text-color="#fff" :collapse="menuStatus">

                                <component class="menu-item" v-for="item in menuTreeData" :key='item.pagePath'
                                    :index='item.pagePath'
                                    :is="(item.children && item.children.length>0)? 'el-submenu' : 'el-menu-item'">
                                    
                                    <template slot="title">
                                        <i :class="item.icon"></i>
                                        <span slot="title">{{item.menuName}}</span>
                                    </template>
                                    
                                    
                                    <template v-if="item.children && item.children.length>0">
                                        <el-menu-item v-for="item2 in item.children" :key='item2.pagePath'
                                            :index="item2.pagePath">
                                            <i :class="item2.icon"></i>
                                            <span>{{item2.menuName}}</span>
                                        </el-menu-item>
                                    </template>

                                </component>
                            </el-menu>

img

img

  • 写回答

1条回答 默认 最新

  • tonyzhangcn 2021-09-10 16:16
    关注

    看官方文档,el-menu-item的时候icon是放在template 的外面的。不是放在里面的。改成放到外面后就可以正常显示了。

    <i :class="item.icon"></i>
    <template #title>
      <span>{{ item.menuName }}</span>
    </template>
    

    而不是

    <template #title>
        <i :class="item.icon"></i>
        <span>{{ item.menuName }}</span>
    </template>
    

    可以把你的代码改成这样。供你参考:

    <template>
      <el-menu :default-active="currentMenu" unique-opened class="el-menu-vertical-demo" router
               background-color="#304156" text-color="#fff" :collapse="menuStatus">
        <template v-for="item in menuTreeData" :key='item.pagePath'>
          <template v-if="item.children && item.children.length>0">
            <el-submenu :index='item.pagePath'>
              <template #title>
                <i :class="item.icon"></i>
                <span>{{ item.menuName }}</span>
              </template>
              <el-menu-item v-for="item2 in item.children" :key='item2.pagePath'
                            :index="item2.pagePath">
                <i :class="item2.icon"></i>
                <span>{{ item2.menuName }}</span>
              </el-menu-item>
            </el-submenu>
          </template>
    
          <template v-else>
            <el-menu-item :index='item.pagePath'>
              <i :class="item.icon"></i>
              <template #title>
                <span>{{ item.menuName }}</span>
              </template>
            </el-menu-item>
          </template>
        </template>
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 9月13日
  • 已采纳回答 9月13日
  • 创建了问题 9月10日

悬赏问题

  • ¥15 metadata提取的PDF元数据,如何转换为一个Excel
  • ¥15 关于arduino编程toCharArray()函数的使用
  • ¥100 vc++混合CEF采用CLR方式编译报错
  • ¥15 coze 的插件输入飞书多维表格 app_token 后一直显示错误,如何解决?
  • ¥15 vite+vue3+plyr播放本地public文件夹下视频无法加载
  • ¥15 c#逐行读取txt文本,但是每一行里面数据之间空格数量不同
  • ¥50 如何openEuler 22.03上安装配置drbd
  • ¥20 ING91680C BLE5.3 芯片怎么实现串口收发数据
  • ¥15 无线连接树莓派,无法执行update,如何解决?(相关搜索:软件下载)
  • ¥15 Windows11, backspace, enter, space键失灵