前情


公司有经常需要做一些后台管理页面,我们选择了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. 一文搞定WeakHashMap

    写在前面 在缓存场景下,由于内存是有限的,不能缓存所有对象,因此就需要一定的删除机制,淘汰掉一些对象.这个时候可能很快就想到了各种Cache数据过期策略,目前也有一些优秀的包提供了功能丰富的Cache ...

  2. @vue/cli typescript插件使用指南

    步骤 使用 yarn add 安装 @vue/cli-service 对应版本的 @vue/cli-plugin-typescript 例如:"@vue/cli-service": ...

  3. Linux安装miniforge

    miniforge 安装 协议条款:bsd-3-clause 支持conda和mamba命令,两者效果一样,推荐使用mamba # Setup Miniforge wget "https:/ ...

  4. XYD1006CSPS

    T1 密钥 [关键结论,模拟,枚举] Description 给定两个长度为 \(n\) 的 \(01\) 序列 \(a\),\(b\),每个位置都有一个权值 \(c\), 每次操作可以将 \(a\) ...

  5. 树莓派2 CentOS7.9 环境下编译 ZLMediaKit 备忘录

    查询系统架构 getconf LONG_BIT 查看是32 或 64位 arch uname -m 输出"x86_64"则为64位,输出"i686"或" ...

  6. C++ 第一节课 名字空间 ,输入输出函数,和 C 语言的区别

    #include <iostream> // #include 头文件,C++标准库的头文件都不带 .h (.h 是C库头文件添加的) #include <cstdio> #i ...

  7. Vue3中的新的内置组件

    在vue2中的内置组件: 动态路由中的 component :作用:动态显示路由的挂载点,使用 is 属性动态显示组件 : keep-alive :作用:使被包裹的组件保留状态,避免被重新渲染 : 路 ...

  8. KubeSphere Meetup 北京站火热报名中 | 搭载 CIC 2021 云计算峰会

    "CIC 2021 云计算峰会"是一场 Top 级行业盛会,将汇聚 800 家青云QingCloud 企业客户信息化负责人,采取线上线下相结合的方式,与会规模将超过 10000 人 ...

  9. 一文读懂 Prometheus 长期存储主流方案

    嘉宾 | 霍秉杰 整理 | 西京刀客 出品 | CSDN 云原生 Prometheus 作为云原生时代崛起的标志性项目,已经成为可观测领域的事实标准.Prometheus 是单实例不可扩展的,那么如果 ...

  10. CF1187E 题解

    Title translation 给定一棵 \(n\) 个点的树,初始全是白点. 要做 \(n\) 步操作,每一次选定一个与一个黑点相隔一条边的白点,将它染成黑点,然后获得该白点被染色前所在的白色联 ...