一、问题描述
在 el-cascader 中搜索并选中值后,通过触发 change 事件发现,可以拿到该勾选节点的值(由所选选项的 value 值组成的数组),但是由于需求还需要用到选中节点的 label 值,直接使用 getCheckedNodes() 获取选中节点值为 [ ],致使没办法拿到 label 值
二、解决办法
使用 this.$nextTick() 方法解决,就可以获取到了
// 获取选中节点的值
this.$refs["NDepartment"].getCheckedNodes();
代码:
NDepartmentChange(v) {
// 处理 el-cascarder 搜索选中后拿不到 已选节点的值
this.$nextTick(() => {
// 获取选中节点,从中拿取 label 值
const name = this.$refs["NDepartment"].getCheckedNodes()[0]?.pathLabels || [];
this.cFormData.NDepartmentName = name.join("-");
// 打印节点
console.log("new-dept", this.$refs["NDepartment"].getCheckedNodes(), name, v);
});
},
【说明】:逐级选中不会出现这个问题,就很迷惑hhhh~~
就是这样,这个问题的发现还是通过业务的测试发现的,因为我都是 一级一级的选。。。,人家是直接搜索选中的
以上如有错误,欢迎并感谢每一程序员大佬的指正~