element级联选择器中模糊搜索时getCheckedNodes()获取不到当前节点

在使用Element UI的级联菜单时遇到问题,当进行模糊搜索后,通过getCheckedNodes()无法获取当前选中节点。经过排查并非Element版本问题。博主分享了通过getNodeByValue()方法反查获取节点信息的解决方案,这种方法能有效解决获取不到数据的问题。欢迎有其他解决方案的读者留言交流。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

踩了个坑…
使用getCheckedNodes()获取当前节点是ok的,但是当级联菜单模糊搜索时getCheckedNodes()获取当前节点为空.开始以为是element的版本问题,但是经查验并不是

在这里插入图片描述
在这里插入图片描述
当使用getCheckedNodes()方法获取不到节点时,我们可以使用反查的方法getNodeByValue(),去找当前节点

this.$refs[`cascader${index}`][0].panel.getNodeByValue(value)

使用此方法可以反查到节点信息,从而获取到需要的数据.

如果你有好的解决方法,烦请留下哟~

### Element UI 级联选择器获取节点的方法 在使用 Element UI 的级联选择器组件,可以通过 `getCheckedNodes` 方法来获取当前选中的节点及其祖先节点的信息。此方法会返回一个数组,其中包含了所有被选中的节点对象以及它们的相关属性。 以下是实现获取节点的具体方式: #### 使用 `getCheckedNodes` 方法 通过调用 `this.$refs['cascader'].getCheckedNodes(true)` 并传递参数 `true`,可以确保返回的结果不仅包含叶子节点,还包含路径上的所有父节点[^1]。 ```javascript handleChange(val) { const checkedNodes = this.$refs['cascader'].getCheckedNodes(true); console.log('checkedNodes:', checkedNodes); // 遍历所有选中的节点并提取其信息 const parentNodeInfos = []; for (const node of checkedNodes) { if (!node.isLeaf) { // 判断是否为非叶子节点(即父节点) parentNodeInfos.push({ label: node.label, value: node.value, pathLabels: node.path Labels, // 节点路径标签 data: node.data // 自定义数据 }); } } console.log('Parent Nodes Info:', parentNodeInfos); } ``` 在此代码片段中,`getCheckedNodes(true)` 返回的是一个数组,每个元素代表一个节点的对象。这些对象具有诸如 `label`, `value`, 和 `data` 属性等,能够帮助我们进一步操作或展示所需的数据。 #### 关于 Props 配置的重要性 如果未正确配置 `props` 参数,则可能需要手动递归遍历整个树结构以找到所需的父节点信息[^2]。然而,合理设置 `props` 后可以直接利用框架内置的功能简化开发流程。 例如,在初始化级联选择器应指定如下 props 设置: ```javascript props: { expandTrigger: 'hover', checkStrictly: true, // 支持单击任意一级触发回调而不局限于最底层项 }, ``` 这样做的优势在于无需额外编写逻辑去解析复杂的嵌套关系即可轻松访问到各级别的父子关联情况。 --- ### 总结 为了高效地从 element-ui 的 cascader 组件里取得所关心的父节点资料,请务必善加运用官方所提供的 API 函数如 getCheckedNodes,并配合适当的 prop 定义减少不必要的自订程序码撰写负担。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值