解决Ant Design Vue Tree组件点击title无法展开的问题

303 阅读1分钟

一、环境

ant-design-vue: 4.0.0

vue: 3.2.45

typescript: 4.9.3

二、代码

HTML

<a-tree v-model:expanded-keys="expandedKeys" :tree-data="treeData" @select="onSelect"></a-tree>

TS

/** 展开的节点 */
const expandedKeys = ref<Key[]>([]);
/** 目录树数据 */
const treeData = ref<TreeProps['treeData']>([
  {
    title: '第一层',
    key: '0-0',
    children: [
      {
        title: '第二层1',
        key: '0-0-0',
        children: [
          { title: '第三层1', key: '0-0-0-0' },
          { title: '第三层2', key: '0-0-0-1'},
        ],
      },
      {
        title: '第二层2',
        key: '0-0-1',
        children: [{ title: '第三层3', key: '0-0-1-1' }],
      },
    ],
  },
]);

/**
 * 目录树选择
 * @param selectedKeys
 * @param {node, selected}
 */
function onSelect(selectedKeys: Key[], { node, selected }: any) {
  if (node?.children) {
    if (!expandedKeys.value.includes(node.key)) {
      expandedKeys.value.push(node.key);
    } else {
      expandedKeys.value.splice(expandedKeys.value.indexOf(node.key), 1);
    }
    expandedKeys.value = [...new Set(expandedKeys.value)];
  }

}

三、总结

没什么好总结的。