bug示意图: 给 select 赋值,select 展示的却是value的数据, 不是我们想看到 label 对应的数据,而且在下方的选择列表中并没有选中传递过来的数据
这个问题一般是 select v-model
所绑定的属性的数据类型和 可以选择列表中的value
的数据类型不匹配造成的。
比如: 我的 v-model 绑定的是 dialogData.weChatAutoSendMessageTaskDO.weChatRobotId
,回显就是自己主动给这个 v-model
赋值,如果你给这个 v-model绑定的属性赋值 的数据类型是 Number
,而enterpriseList
选择列表 中的 value 是 String
类型,这个样子就会出现 标题问题。
解决办法:就是把二者的数据类型同一即可(既v-model 绑定的属性和 选择列表中 value 的数据类型保持一致即可)。转换数据类型太简单了自己根据实际情况,想最简单的办法处理吧。
<el-form-item label="xxxxx" prop="weChatRobotId">
<el-select
v-model.trim="dialogData.weChatAutoSendMessageTaskDO.weChatRobotId"
filterable
:reserve-keyword="true"
placeholder="请输入"
style="width: 300px"
multiple
@change="profilePlatformUidChange"
>
<el-option
v-for="item in enterpriseList" // enterpriseList 这个数组就是用来做select 可以选择列表的
:key="item.value"
:label="item.label"
:value="item.value"
></el-option>
</el-select>
</el-form-item>
选择列表示意图:
可以使用 typeof
来简单判断 你赋值数据的数据类型,因为一般来说,value
的值一般是数字,数据类型一般是 String
, 或 Number
。