elementui select 下拉框单选多选切换引起的bug

1,935 阅读1分钟

问题描述

最近在写一个管理后台,使用到了Elementui组件。在搜索部分,需要根据不同的工单类型动态的切换下面的搜索选项,这里面有部分内容是多选有的是单选。

当我在不断的切换工单类型的时候,就报错了。错误大概长这样。

解决方案

这一看是 elementui 内部的错误啊,我就去网上搜索了下,再看了下源码。大概的意思是,select 组件在切换单选多选的时候,数据类型从字符串切换成数组导致的错误。

可是我又瞅了一眼,我的单选和多选没有共用一个组件啊。大概长这样

<div v-if="obj.key === 'RA"> 
...//各种表单组件
</div>
<div v-else-if="obj.key === 'FA"> 
...//各种表单组件
</div>
<div v-else-if="obj.key === 'RQM"> 
...//各种表单组件
</div>

我又去翻了翻,在vue的风格指南中找到了这么一个东西。

嗯,估计我这次遇到的就是他说的意料之外的结果吧。然后我去看了下切换工单类型的时候,select 组件单选多选的变化状态,vue确实在复用了一些东西。

问题确定了,那我们照着文档的内容,加个key 就可以了。大概下面这样

<div v-if="obj.key === 'RA" key="RA"> 
...//各种表单组件
</div>
<div v-else-if="obj.key === 'FA" key="FA"> 
...//各种表单组件
</div>
<div v-else-if="obj.key === 'RQM" key="RQM"> 
...//各种表单组件
</div>

测试一遍,ok、问题解决了。