vue-vben-admin icon indicating copy to clipboard operation
vue-vben-admin copied to clipboard

BasicTree 组件,工具栏搜索后,check报错

Open seaton-git opened this issue 3 years ago • 3 comments

描述 Bug

使用 BasicTree 组件,启用工具栏,在 搜索框 中输入关键字后,选择树节点,报错:

Cannot read properties of undefined (reading 'node')

查看 BasicTree 组件,关键代码如下:

onCheck: (v: CheckKeys, e: CheckEvent) => {
  let currentValue = toRaw(state.checkedKeys) as Keys

  if (isArray(currentValue) && searchState.startSearch) {
    const { key } = unref(getReplaceFields)
    
    // 此处的 e.node.$attrs 获取为 undefined
    currentValue = difference(currentValue, getChildrenKeys(e.node.$attrs.node[key]))
   ...
}

复现 Bug

复现地址:https://vvbin.cn/next/#/comp/tree/editTree 步骤: 1. 工具栏使用 2. 搜索框输入 en 3. 选择树节点 4. 无法选中,控制台报错

image

系统信息

  • 操作系统: macOS Big Sur
  • Node 版本: v12.22.3
  • 包管理器 (npm/yarn/pnpm) 及其版本: npm

seaton-git avatar Jan 20 '22 04:01 seaton-git

  • 操作系统: Windows 10 专业版
  • Node 版本: v16.14.2
  • 包管理器 (npm/yarn/pnpm) 及其版本: pnpm

出现同样问题,修改e.node.$attrs.node为e.node,仍然不能正常工作。

xichuangtech avatar Mar 31 '22 01:03 xichuangtech

修改e.node.$attrs.node为e.node可以解决

wangmin0314 avatar May 12 '22 07:05 wangmin0314

修改e.node.$attrs.node[key]为e.node[key]可以解决选中问题,但还有另外一个问题,就是搜索之后选择有子集的选项,页面表现为本身和子集都被选中,实际只有选项本身被选中,不包含子集

wang-w avatar Aug 05 '22 08:08 wang-w

已修复

mynetfan avatar Nov 02 '22 08:11 mynetfan