使用element-ui时select级联选择器选中数据时同时获取label和value值?

这个是我目前实现的方法,有没有更优雅点的?

handleChange(value) {
      this.formInfo.checkItem = value;

      // 获取选中项的 value
      const selectedValue = value[value.length - 1];

      // 根据 selectedValue 遍历 options 找到对应的 label
      let selectedLabel = "";
      this.traverseOptions(
        this.options,
        selectedValue,
        (label, parentValue) => {
          selectedLabel = label;
        }
      );
      this.formInfo.checkClass = selectedValue; // 将找到的 selectedValue 赋值给 checkClass
      this.formInfo.checkClassName = selectedLabel; // 将找到的 selectedLabel 赋值给 checkClass
    },
traverseOptions(options, value, callback, parentValue) {
      for (let i = 0; i < options.length; i++) {
        const option = options[i];
        if (option.value === value) {
          let label = option.label;
          callback(label, parentValue); // 找到匹配的 label 并回调传递
          return;
        }
        if (option.children) {
          this.traverseOptions(option.children, value, callback, option.value); // 递归遍历子选项,并传递父级的值
        }
      }
    },
阅读 2.3k
2 个回答

值绑定对象 获取的就是对象有label和value字段
image.png

如果你是用的select就用楼上@flexyan的方法,如果你用的是Cascader,官方也提供了方法,可以获得当前选择的节点。
image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题