在配置value-key后,v-model绑定的值就必须是json对象,不然回显就会有问题。value是对象的一个好处就是,回显方便快速,不必依赖options列表的数据。
demo
<template>
<el-select value-key="value" v-model="value" class="m-2" placeholder="Select" size="large" @change="change">
<el-option
v-for="item in options"
:key="item.value"
:label="item.label"
:value="item"
/>
</el-select>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const value = ref({value:'Option4',label:"xxx"})
function change(v){
console.log("v",v,"value",value)
}
const options = ref([]);
const options1 = [
{
obj:{text:1},
value: 'Option1',
label: 'labelOption1',
},
{
obj:{text:2},
value: 'Option2',
label: 'labelOption2',
},
{
obj:{text:3},
value: 'Option3',
label: 'labelOption3',
},
{
obj:{text:4},
value: 'Option4',
label: 'labelOption4',
},
{
obj:{text:5},
value: 'Option5',
label: 'labelOption5',
},
]
setTimeout(()=>{options.value=options1},1000)
</script>