vue-vben-admin
vue-vben-admin copied to clipboard
BasicTree 组件,工具栏搜索后,check报错
描述 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. 无法选中,控制台报错
系统信息
- 操作系统: macOS Big Sur
- Node 版本: v12.22.3
- 包管理器 (npm/yarn/pnpm) 及其版本: npm
- 操作系统: Windows 10 专业版
- Node 版本: v16.14.2
- 包管理器 (npm/yarn/pnpm) 及其版本: pnpm
出现同样问题,修改e.node.$attrs.node为e.node,仍然不能正常工作。
修改e.node.$attrs.node为e.node可以解决
修改e.node.$attrs.node[key]为e.node[key]可以解决选中问题,但还有另外一个问题,就是搜索之后选择有子集的选项,页面表现为本身和子集都被选中,实际只有选项本身被选中,不包含子集
已修复