You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

vue-select组件选中选项后选择框不显示问题求助

vue-select选中后选择框空白问题解决

你这问题根源很明确:用reduce把v-model转成了单个id值,但只自定义了下拉选项的展示模板,没给选中状态配置显示逻辑。组件拿到id后,找不到对应的显示文本,自然就空了。

下面给两个靠谱的解决办法:


办法一:自定义选中项的展示模板

给v-select加个selected-option插槽,通过当前选中的id从broadcasters数组里匹配对应的名称:

<template>
  <div>
    <v-select
      label="broadcast"
      v-model="broadcast_"
      :options="broadcasters"
      :reduce="(broadcast) => broadcast.id"
    >
      <template v-slot:option="option">{{ option.name }}</template>
      <!-- 新增选中项的展示逻辑 -->
      <template v-slot:selected-option="props">
        {{ broadcasters.find(item => item.id === props.value)?.name }}
      </template>
    </v-select>
  </div>
</template>

<script>
import Vue from "vue";
import vSelect from "vue-select";
Vue.component("v-select", vSelect);

export default {
  data() {
    return { 
      broadcasters: [
        { name: "ABC Live", id: 1 },
        { name: "Disney", id: 3 },
        { name: "24x7 Broadcast", id: 4 },
      ],
      broadcast_: "",
    };
  },
  watch: {
    broadcast_(val) {
      console.log(val);
    },
  },
};
</script>

办法二:移除reduce,绑定整个对象(推荐)

如果不是非得把v-model的值设为纯id,直接绑定整个广播对象更省心。另外注意你原来的label="broadcast"是无效的,得改成label="name",对应选项对象里的名称字段:

<template>
  <div>
    <v-select
      label="name" <!-- 这里改对字段名,组件自动用name显示 -->
      v-model="broadcast_"
      :options="broadcasters"
      <!-- 去掉reduce,v-model直接绑定整个对象 -->
    >
      <template v-slot:option="option">{{ option.name }}</template>
    </v-select>
  </div>
</template>

<script>
import Vue from "vue";
import vSelect from "vue-select";
Vue.component("v-select", vSelect);

export default {
  data() {
    return { 
      broadcasters: [
        { name: "ABC Live", id: 1 },
        { name: "Disney", id: 3 },
        { name: "24x7 Broadcast", id: 4 },
      ],
      broadcast_: null, // 初始值设为null,匹配对象类型
    };
  },
  watch: {
    broadcast_(val) {
      if(val) console.log(val.id); // 需要id时直接取val.id就行
    },
  },
};
</script>

这个办法代码更简洁,后续维护也方便,优先推荐使用。

内容的提问来源于stack exchange,提问作者Arnab Maiti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 15:30:55