ant design select 下拉获取value和label过程
请耐心看完整个过程😂
// select 代码
<a-select
v-decorator="[
'categoryId',
{rules: [{ required: true, message: '请选择设备分类' }]}
]"
placeholder="请选择设备分类"
@change="handleChangeSelect"
>
<a-select-option v-for="(item, index) in categoryList" :key="index" :value="item.categoryId">
{{ item.name }}</a-select-option>
</a-select>
<script>
export default {
name: 'DistribuAdd',
data () {
return {
loading:false,
categoryName:'',
categoryList:[]
}
},
methods: {
handleChangeSelect (value, label){
debugger
this.categoryName = label.componentOptions.children[0].elm.data.trim()
}
}
</script>
获取过程
select change方法触发,可以获取到value,第二个参数是option选项,在这个对象里可以查找到数据
获取到label,然后在trim()下就获取到label文本了
我看到别人写的ant design说加上labelInValue=“true”
有初始数据的,不能正常显示
<a-select
labelInValue="true"
v-decorator="[
'categoryId',
{rules: [{ required: true, message: '请选择设备分类' }]}
]"
placeholder="请选择设备分类"
@change="handleChangeSelect"
>
<a-select-option v-for="(item, index) in categoryList" :key="index" :value="item.categoryId">
{{ item.name }}</a-select-option>
</a-select>
value是一个对象导致无法回显到select对象上
handleChangeSelect (value, label){
value = value.key
debugger
this.categoryName = value.label.trim()
},
这样写,导致回显value没有label导致select无法选中
最终我还是回到自己最原始的方法上,是目前最好的解决方法
能回显,能下拉选,能得到label值