前情


公司有经常需要做一些后台管理页面,我们选择了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. 这10种分布式ID,太绝了!

    前言 分布式ID,在我们日常的开发中,其实使用的挺多的. 有很多业务场景在用,比如: 分布式链路系统的trace_id 单表中的主键 Redis中分布式锁的key 分库分表后表的id 今天跟大家一起聊 ...

  2. 【QT性能优化】QT性能优化之QT6框架高性能网络编程框架实现百万TCP长连接网络服务器:QT是否适合做高性能网络应用?补天云这个视频告诉你在大厂Linux云服务器上的实测结果

    QT性能优化之QT6框架高性能网络编程框架实现百万TCP长连接网络服务器 Ø 简介 本文作者编写了一套基于QT的TCP网络服务器程序和基于QT的TCP客户端程序,在某大厂的云服务器上进行了C1000K ...

  3. 祝福 Eric 的下一段旅程,Flutter 3.3 现已发布

    Flutter 团队及社区成员们在美丽的城市挪威奥斯陆向您发来问候,我们正在此参加社区举办的 Flutter Vikings 活动,这是一个为期两天的开发技术交流盛会,虽然线下门票已经售罄,但您还可以 ...

  4. [OI] 珂朵莉树

    对于一个序列,它有较多重复元素,并且题目需要维护区间修改,维护区间信息,维护整块值域信息的,那么就可以考虑珂朵莉树解决. 主要思想 珂朵莉树将全部相同的颜色块压缩为一组,如对于下述序列: 1 1 1 ...

  5. 如何使用hardware breakpoint

    要使用内核的硬件断点(hardware breakpoint)来定位内核模块中的内存访问问题,你可以通过以下步骤进行设置和调试. 1. 确定要监控的内存地址 首先,你需要确定你想要监控的内存地址.这可 ...

  6. appium-解决uiautomatorviewer不能定位android7以上版本元素的方法

    上图是android10模拟器,发现我们是无法连接模拟器识别的 解决方法: 在模拟器内打开指定页面然后截图,最后保存为uix文件,然后用adb拉到本地,一共四个命令,可以保存为.bat文件快捷执行(这 ...

  7. 【问题解决】java.lang.SecurityException: JCE cannot authenticate the provider BC

    问题复现 历史项目升级JDK(由1.7升级到8),进行加密/解密时出现报错java.lang.SecurityException: JCE cannot authenticate the provid ...

  8. String,StringBuffer、StringBuilder的区别

    1.可变性 String:是不可变的.其内部是fianl修饰的,每次变更都会创建一个新的对象. StringBuffer.StringBuilder是可变的,字符串的变更是不会创建新对象的. 2.线程 ...

  9. 低功耗4G模组:LCD应用示例

    ​ 今天我们学习合宙Air780E开发板LCD应用示例,文末[阅读原文]获取最新资料. 本文档适用于Air780E开发板 关联文档和使用工具 lcd-demo: https://gitee.com/o ...

  10. pycharm配置默认镜像地址

    使用pycharm编写接口自动化测试时,需要下载很多安装包,不指定镜像时下载可能很慢,可以设置默认镜像 命令:pip config set global.index-url 镜像地址 查看已设置的默认 ...