element-plus中el-icon el-tree-node__expand-icon expanded 图标没有跟着变
时间: 2024-01-30 08:03:18 浏览: 130
这可能是因为你使用了自定义的图标,而没有更新自定义图标的样式。
你可以尝试在展开和折叠节点时,手动切换图标的样式。例如:
```vue
<template>
<el-tree :data="data" :props="defaultProps" @node-click="handleNodeClick">
<template #default="{ node, data }">
<span class="custom-icon" :class="{'el-icon-arrow-right': !node.expanded, 'el-icon-arrow-down': node.expanded}" v-if="!data.loading"></span>
</template>
</el-tree>
</template>
<script>
export default {
data() {
return {
data: [
{
label: '一级 1',
children: [
{
label: '二级 1-1',
children: [
{ label: '三级 1-1-1' },
{ label: '三级 1-1-2' }
]
},
{
label: '二级 1-2',
children: [
{ label: '三级 1-2-1' },
{ label: '三级 1-2-2' }
]
}
]
}
],
defaultProps: {
children: 'children',
label: 'label'
}
}
},
methods: {
handleNodeClick(data, node) {
node.expanded = !node.expanded
node.iconClass = node.expanded ? 'el-icon-arrow-down' : 'el-icon-arrow-right'
}
}
}
</script>
<style scoped>
.custom-icon {
display: inline-block;
width: 14px;
height: 14px;
margin-right: 4px;
background-repeat: no-repeat;
background-position: center;
}
.el-icon-arrow-right:before {
content: '\e61b';
}
.el-icon-arrow-down:before {
content: '\e61a';
}
</style>
```
在这个例子中,我们使用了一个自定义的图标,并在展开和折叠节点时,手动切换图标的样式。这样可以确保图标随着节点的展开和折叠而正确地变化。
阅读全文