vue el-select绑定对象时,回显内容不正确,始终是最后一项的解决

 更新时间:2022年07月26日 09:08:19   作者:大橙子_L  
这篇文章主要介绍了vue el-select绑定对象时,回显内容不正确,始终是最后一项的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

el-select绑定对象时,回显内容始终是最后一项

一、问题描述

使用el-select组件绑定类型为对象时,回显内容始终为选项的最后一项,但是通过控制台打印的信息却是所选项。

使用代码:

<template>
  <div class="page-index">
    <el-form
      :model="ruleForm"
      :rules="rules"
      ref="ruleForm"
      label-width="100px"
    >
      <el-form-item label="食物名称" prop="food">
        <el-select
          v-model="ruleForm.food"
          placeholder="请选择食物"
          @change="handleChange"
        >
          <el-option
            v-for="food in foodOptions"
            :key="food.id"
            :label="food.name"
            :value="food"
          ></el-option>
        </el-select>
      </el-form-item>
    </el-form>
  </div>
</template>
<script>
export default {
  data() {
    return {
      ruleForm: {
        food: {}
      },
      foodOptions: [
        {
          id: "食物1",
          name: "黄金糕"
        },
        {
          id: "食物2",
          name: "双皮奶"
        },
        {
          id: "食物3",
          name: "蚵仔煎"
        },
        {
          id: "食物4",
          name: "龙须面"
        },
        {
          id: "食物5",
          name: "北京烤鸭"
        }
      ],
      rules: {
        food: [{ required: true, message: "请选择具体食物", trigger: "blur" }]
      }
    };
  },
  methods: {
    handleChange(food) {
      console.log(food.name);
    }
  }
};
</script>

选项图示:

显示错误图示:

实际选择了蚵仔煎,回显的内容却是北京烤鸭,但日志打印出的是蚵仔煎,是正确的。

二、原因分析和解决方法

官网上有说明,若绑定值为对象类型时,必须指定value-key,作为 value 唯一标识的键名。所以只需在el-select中增加value-key即可。

修改后el-select使用代码:

<el-select
    v-model="ruleForm.food"
    placeholder="请选择食物"
    value-key="id"
    @change="handleChange"
>
    <el-option
    v-for="food in foodOptions"
    :key="food.id"
    :label="food.name"
    :value="food"
    ></el-option>
</el-select>

三、总结

好好看官方文档!!!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue使用element-resize-detector监听元素宽度变化方式

    vue使用element-resize-detector监听元素宽度变化方式

    这篇文章主要介绍了vue使用element-resize-detector监听元素宽度变化方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Ant Design of Vue的树形控件Tree的使用及说明

    Ant Design of Vue的树形控件Tree的使用及说明

    这篇文章主要介绍了Ant Design of Vue的树形控件Tree的使用及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Vue浅拷贝和深拷贝实现方案

    Vue浅拷贝和深拷贝实现方案

    在理解浅拷贝和深拷贝浅前,必须先理解基本数据类型和引用数据类型的区别,这篇文章主要介绍了Vue浅拷贝和深拷贝实现方案及区别对比分析,需要的朋友可以参考下
    2023-03-03
  • vue2 webpack proxy与nginx配置方式

    vue2 webpack proxy与nginx配置方式

    这篇文章主要介绍了vue2 webpack proxy与nginx配置方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • Vue开发中出现Loading Chunk Failed的问题解决

    Vue开发中出现Loading Chunk Failed的问题解决

    本文主要介绍了Vue开发中出现Loading Chunk Failed的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • vue+elementui实现点击table中的单元格触发事件--弹框

    vue+elementui实现点击table中的单元格触发事件--弹框

    这篇文章主要介绍了vue+elementui实现点击table中的单元格触发事件--弹框,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • vue+webpack 打包文件 404 页面空白的解决方法

    vue+webpack 打包文件 404 页面空白的解决方法

    下面小编就为大家分享一篇vue+webpack 打包文件 404 页面空白的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • Vue获取微博授权URL代码实例

    Vue获取微博授权URL代码实例

    这篇文章主要介绍了Vue获取微博授权URL代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • vue使用threeJs导入obj模型并实现添加标注

    vue使用threeJs导入obj模型并实现添加标注

    这篇文章主要介绍了vue使用threeJs导入obj模型并实现添加标注方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • vue组件传递对象中实现单向绑定的示例

    vue组件传递对象中实现单向绑定的示例

    下面小编就为大家分享一篇vue组件传递对象中实现单向绑定的示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02

最新评论