ant design提供的树组件支持点击高亮树节点,再次点击取消高亮。然而大多数业务场景下,我们希望多次点击同一个节点不会影响它的选中效果。
思路
手动设置选中的节点为当前点击的节点,这样每次点击都是一次选中。
方法
<template>
<a-tree
:tree-data="treeData"
:selectedKeys="selectedKeys"
defaultExpandAll
@select="onSelect" />
</template>
<script>
const treeData = [
{
title: 'parent 1',
key: '0-0',
children: [
{
title: 'parent 1-0',
key: '0-0-0',
children: [
{ title: 'leaf1', key: '0-0-0-0' },
{ title: 'leaf2', key: '0-0-0-1' }
]
}
]
}
]
export default {
data() {
return {
treeData,
selectedKeys: ['0-0-0']
}
},
methods: {
onSelect(selectedKeys, info) {
const { key } = info.node.dataRef
this.selectedKeys = [key]
}
}
}
</script>