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

Vue.js Vuetify v-select如何渲染API返回的对象属性?

解决Vuetify v-select显示[object Object]的问题

问题原因

  1. 字段不匹配:你设置了item-text="expedition",但expeditions数组里的对象根本没有expedition属性,只有value字段。v-select找不到要展示的文本,只能把对象转成默认字符串[object Object]。
  2. item-value绑定错误::item-value="'deliveryData.expedition'"写法不对,绑定属性时不需要用引号包字符串,直接写对象里的属性名就行。

修正方案

1. 匹配数据结构与item-text

如果后端返回的expeditions每个对象包含「显示文本」和「对应值」,比如结构是这样:

expeditions: [
  {
    expedition: "快递A", // 要显示的文本
    value: "deliveryData.expeditionA" // 对应的值
  },
  {
    expedition: "快递B",
    value: "deliveryData.expeditionB"
  }
]

那v-select可以这么写:

<v-select
  label="Expedition"
  :items="expeditions"
  item-text="expedition"
  item-value="value"
  class="custom-select-field"
  variant="underlined"
></v-select>

2. 直接用现有字段作为显示文本

如果后端返回的对象只有value字段,或者你想把value当成显示文本,直接把item-text设为"value":

<v-select
  label="Expedition"
  :items="expeditions"
  item-text="value"
  item-value="value"
  class="custom-select-field"
  variant="underlined"
></v-select>

3. 自定义选项显示(灵活方案)

如果需要更复杂的展示逻辑,用作用域插槽自定义选项内容:

<v-select
  label="Expedition"
  :items="expeditions"
  item-value="value"
  class="custom-select-field"
  variant="underlined"
>
  <template v-slot:item="{ item }">
    <!-- 这里可以自由拼接或渲染内容 -->
    <span>{{ item.value }}</span>
  </template>
</v-select>

额外提醒

  • 确认后端数据请求完成后,expeditions数组已经被正确赋值(比如在API回调里写this.expeditions = 后端返回数据)。
  • 检查v-model绑定的值类型,要和item-value指定的属性类型一致,避免选中后出现异常。

内容的提问来源于stack exchange,提问作者Hanung Setiawan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 06:35:03