element中el-select多选v-model是对象数组

一、问题

element中的el-selectv-model一般都是字符串或者字符串数组,但是有些时候后端接口要求该字段要传对象或者对象数组,如果再转换一次数据,对于保存配置和回显都是吃力不讨好的事情。如下所示:

<template>
    <el-select
       multiple
       clearable
       filterable
       v-model="select"
    >
      <el-option
        v-for="item in options"
        :key="item.nodeId"
        :label="item.nodeName"
        :value="item.nodeId"
      />
    </el-select>
</template>
<script>
export default {
    data() {
        return {
            select: [],
            options: [
                {
                    "nodeId": "node_135061771075",
                    "nodeName": "审批人1"
                },
                {
                    "nodeId": "node_404274216403",
                    "nodeName": "审批人2"
                }
            ]
        }
    }
}
</script>

选中后的数据select为:

['node_135061771075', 'node_404274216403']

但是想实现的是select值为:

[
    {
   
        "nodeId": "node_135061771075",
        "nodeName": "审批人1"
    },
    {
   
        "nodeId": "node_404274216403",
        "nodeName": "审批人2"
    }
]

这时,如果把el-optionvalue改成item

<el-option
    v-for="item in options"
    :key="item.nodeId"
    :label="item.nodeName"
    :value="item"
/>

结果发现竟然会报错:

<transition-group> children must be keyed: <ElTag>

二、解决

指定el-selectvalue-key属性。官网的说法:如果 Select 的绑定值为对象类型,请务必指定 value-key 作为它的唯一性标识。点击【跳转】访问官网

<template>
    <el-select
       multiple
       clearable
       filterable
   	   value-key="nodeId"
       v-model="select"
    >
      <el-option
        v-for="item in options"
        :key="item.nodeId"
        :label="item.nodeName"
        :value="item"
      />
    </el-select>
</template>
<script>
export default {
     
    data() {
     
        return {
     
            select: [],
            options: [
                {
     
                    "nodeId": "node_135061771075",
                    "nodeName": "审批人1"
                },
                {
     
                    "nodeId": "node_404274216403",
                    "nodeName": "审批人2"
                }
            ]
        }
    }
}
</script>

el-select设置好value-key后,页面不会报错,而且数据也是返回如下正确格式:

[
    {
   
        "nodeId": "node_135061771075",
        "nodeName": "审批人1"
    },
    {
   
        "nodeId": "node_404274216403",
        "nodeName": "审批人2"
    }
]

三、最后

本人每篇文章都是一字一句码出来,希望大佬们多提提意见。顺手来个三连击,点赞👍收藏💖关注✨。打气,加油☕

相关推荐

  1. v-moduleselect的使用

    2023-12-09 07:06:03       34 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-09 07:06:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-09 07:06:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-09 07:06:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-09 07:06:03       18 阅读

热门阅读

  1. 我的创作纪念日

    2023-12-09 07:06:03       38 阅读
  2. Vue2学习(组件的使用)

    2023-12-09 07:06:03       43 阅读
  3. 有关CSS选择器

    2023-12-09 07:06:03       39 阅读
  4. C++_对C数据类型的扩展

    2023-12-09 07:06:03       28 阅读
  5. ChatGPT的常识

    2023-12-09 07:06:03       42 阅读
  6. 蓝桥杯ACwing习题

    2023-12-09 07:06:03       33 阅读
  7. 美国Linux服务器的iptables防火墙介绍

    2023-12-09 07:06:03       40 阅读
  8. iClient3D 加载天地图服务

    2023-12-09 07:06:03       28 阅读
  9. MySQL七 | 存储引擎

    2023-12-09 07:06:03       40 阅读
  10. Visual Studio 2015 中 FFmpeg 开发环境的搭建

    2023-12-09 07:06:03       34 阅读
  11. 排序算法——冒泡排序

    2023-12-09 07:06:03       41 阅读
  12. P5743 【深基7.习8】猴子吃桃

    2023-12-09 07:06:03       36 阅读