前情


公司有经常需要做一些后台管理页面,我们选择了Element Plus,它是基于 Vue 3,面向设计师和开发者的组件库,是Vue框架生态中比较火的UI组件库,组件库丰富易用,组件链接:一个 Vue 3 UI 框架 | Element Plus

坑位


最近在开发一个需求,需要使用el-select组件实现多选,但是在回显的时候发现它回显的是value值而非label值,正常应该都是显示label值,value值是给程序用的,label才是给用户看的,如果让用户直接看到value值,用户会一脸蒙,根本不知道它是什么。

Why?


第一时间想到的是,是不是组件有参数可以配置哪一个字段用于回显,查了文挡无果,我无意去操作了下el-select才发现是因为当前select配置没有请求下来,如下图,所以当select配置没有的时候它会回显你绑定的值,因为没有配置它无法回显label

解决方案


理想情况下获取对应的el-select的正确配置,渲染好el-option即可正确回显label

坑中坑

好事多磨,获取了正确配置后,其中一个el-select是正确回显了label,但是另一个还是回显异常,查看配置是正常配置了的,又是一脸蒙的状态,如下图。

Why?

在反复确认后和多次尝试后发现其中有猫腻,发现服务端接口返回给我el-select配置和当前el-select的表单值类型是对不上的,应该是el-select在做回显value判断的时候用是===,值和类型都必须一致才行。如下图:



解决方案

查看服务端提交接口,发现它要求platform必须是字符串,那就是说它返回配置项数据类型是错的,这时有二种方法,一种是叫服务端修正下返回类型,另一种方法是前端在拉取配置后手动转下类型下拿来用,当然我选择了后者,自己动手丰衣足食,其实最优的方法是让服务端修正,前端修正的关键代码如下:

...
options.value.platformList = res.data.platform_options.map(item => {
item.value = item.value + "";
return item;
});
...

总结

在使用el-select的时候,正确的情况下都是会回显label的,在如下二种情况下它会回显异常:

  1. 配置没有,它会直接显示你v-model绑定的值,表面看就是el-select的配置项的value值,此时你补全配置即可
  2. 当你配置的项的value和你v-model绑定的值类型不一致的时候,它也会直接显示v-model绑定的值,此时确认服务端最后要提交的值是什么类型的,修正类型即可

Element Plus组件el-select回显异常的更多相关文章

  1. Element upload组件上传图片与回显图片

    场景:新增商品时需要添加商品主图,新增成功之后可编辑 上传图片: <el-form-item label="专区logo:" style="height:160px ...

  2. Element Select 回显

    有思考有痛点的朋友可以聊聊(要求:认真看过Element相关文档,对该场景自己有过多角度的探索) 下拉框回显的关键点:要回显的值包含于下拉列表的数组中 demo图 最近遇到一个需求抽象下:循环中下拉框 ...

  3. table组件选中数据回显

    table组件多选状态下,把已选择的数据回显,需要在多选列上加上一个属性 :reserve-selection="true" 实例如下: <el-table :data=&q ...

  4. 解决element 照片墙上传时回显问题

    1.先看看样式: <el-upload class="imgList" action="1165165" list-type="picture- ...

  5. vue element-UI 多个 select 回显成功,但是选中无反应

    参考文章 vue开发(四)element的select下拉框设定初值后,不能重新选择的问题 参考文章 element模态框dialog中的select组件中选中无反应 原因 下拉框数据是循环别的接口得 ...

  6. tp5 select回显

    <select name="role_id" id="" class="form-control" required> {vol ...

  7. JSP第四篇【EL表达式介绍、获取各类数据、11个内置对象、执行运算、回显数据、自定义函数、fn方法库】

    什么是EL表达式? 表达式语言(Expression Language,EL),EL表达式是用"${}"括起来的脚本,用来更方便的读取对象! EL表达式主要用来读取数据,进行内容的 ...

  8. Java安全之反序列化回显研究

    Java安全之反序列化回显研究 0x00 前言 续上文反序列化回显与内存马,继续来看看反序列化回显的方式.上篇文中其实是利用中间件中存储的Request 和Response对象来进行回显.但并不止这么 ...

  9. vue element select多选回显

    我们经常在使用 Element组件里面的 select多选 场景:添加账号的时候需要选择可见分公司(分公司为多选),添加成功之后可以编辑,需要回显添加时所提交的分公司 代码如下: 多选框: data( ...

  10. element上传图片组件使用方法|图片回显|格式转换base64

    upload上传组件的使用方法 上传图片后自动上传(也可以手动上传),图片上传成功后由后端返回特定图片地址,在表单提交后将表单数据同图片地址一并返回即可完成图片上传功能. 组件HTML <!-- ...

随机推荐

  1. MybatisPlus——入门案例

    MyBatisPlus MyBatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发.提高效率 开发方式 基于MyBatis使用MyBatisPlus 基于Sprin ...

  2. SpringBoot——项目快速启动

    SpringBoot项目快速启动 对SpringBoot项目打包(执行Maven构建指令package)    执行后会生成对应的项目 jar包,在文件夹找到该文件    在对应文件夹下即可执行  j ...

  3. AndroidQ 打通应用层到HAL层---(HIDL服务实现)

    什么是HIDL HIDL 全称为HAL interface definition language(发音为"hide-l")是用于指定 HAL 和其用户之间的接口的一种接口描述语言 ...

  4. Java日期时间API系列29-----Jdk8中java.time包中的新的日期时间API类,Java定时任务job中cron表达式计算应用。

    Java开发过程中经常会用到定时任务job的场景,比如定时处理数据报表等问题,开源作业调度框架也非常多,常用的开源作业调度框架有:Spring Task.Quartz和xxl-job等.各个框架的具体 ...

  5. 轨道控制器 threejs

    就是一个可以360转动的相机,通过不断的改变相机的参数 然后渲染达到效果. // 引入相机控件  -- 轨道控制器 // console.log('OrbitControls',OrbitContro ...

  6. CSharp的Where底层实现

    using System; using System.Collections.Generic; using System.Linq; using System.Net.Http; using Syst ...

  7. Nmap信息命令详解

    常用命令 nmap 192.168.0.100(简单扫描) nmap 192.168.0.100/24(扫描目标地址所在的某个网段) nmap 192.168.0.0/24(扫描整个子网中的网络主机信 ...

  8. 双通道MIL-STD-1553B总线通讯模块

    * 双通道MIL-STD-1553B总线通讯模块 * 32bi,33 MHz  CPCI/PCI/总线* 每个通道为A.B双冗余总线* 单功能可设置BC/RT/BM一种工作模式* 数据传输率: 4Mb ...

  9. ROS中无法定位软件包问题

    ROS 和ubuntu版本对应关系

  10. Selenium测试form表单之下拉列表

    处理form表单中的下拉列表,需要用到一个Selenium工具类-Select 一.Select工具类常用属性和方法 方法/属性 描述 1 select_by_value() 根据值选择 2 sele ...