el-menu default-active默认选中后切换菜单后不会取消高亮

使用el-menu遇到的坑

标签的写法,sidebar-item是一个子组件,遍历菜单详细信息的

		<el-menu mode="vertical" :default-active="$route.path" :default-openeds="openeds">
			<sidebar-item :routes="menus"></sidebar-item>
		</el-menu>

sidebar-item 页面:

<template v-for="item in routes">

			<router-link v-if="item.children==null &&item.pid==menuID" :to="item.url">
				<el-menu-item :index="item.id+'/'+item.name" class='submenu-title-noDropdown'>
					<svg-icon v-if='item.icon' :icon-class="item.icon"></svg-icon><span slot="title">{{item.name}}</span>
				</el-menu-item>
			</router-link>
			<el-submenu :index="item.id+'/'+item.name" v-if="item.children ">
				<template slot="title">
					<svg-icon v-if='item.icon' :icon-class="item.icon"></svg-icon><span>{{item.name}}</span>
				</template>
				<template v-for="child in item.children" v-if='item.children '>
					<router-link v-if="child.show == 1" :to="child.url">
						<el-menu-item :index="child.id+'/'+child.name">
							<span>{{child.name}}</span>
						</el-menu-item>
					</router-link>
				</template>
			</el-submenu>
</template>

问题出现的地方是这里:这个index是菜单的key,一定不能是空,或者只是父级路由地址,比如:/topMenu
而children路由里的 path设为“”,设为空的目的是进来主菜单后,默认跳转到path: “”的页面上,这就导致了,这个菜单会一直高亮,不管选中其它任何菜单都不会改变这个菜单的高亮属性

解决办法

修改子菜单路由地址,不要设为空“”

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章