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

Vuetify v-combobox中item-text与item-value使用及显示异常问题

解决方案

下拉选项显示[object Object]的核心原因是v-combobox未正确解析对象中的name字段来渲染选项文本,以下是两种可行的修复方案:

方案1:使用函数式item-text精准提取字段

将组件的item-text属性改为函数形式,确保组件能正确读取每个大学对象的名称:

<template>
  <v-combobox
    v-model="universityName"
    :items="universities"
    :item-text="item => item.name" <!-- 修改为函数形式 -->
    item-value="name"
    hide-details
    label="University Name"
    @update:modelValue="filterUniversities"
    :return-object="false"
  />
</template>

方案2:预处理API返回数据

在赋值给universities前,提前格式化数据,确保结构符合组件预期:

// 在filterUniversities方法中修改赋值逻辑
this.universities = response.data.map(university => ({
  name: university.name
  // 若需保留其他字段(如国家、域名)可在此添加
}));

优化后的完整代码

结合方案1,并补充空搜索时的列表清空逻辑,提升体验:

<template>
  <v-combobox
    v-model="universityName"
    :items="universities"
    :item-text="item => item.name"
    item-value="name"
    hide-details
    label="University Name"
    @update:modelValue="filterUniversities"
    :return-object="false"
  />
</template>

<script>
import axios from "axios";
import _ from 'lodash';

export default {
  data() {
    return {
      universityName: '',
      universities: [],
    }
  },
  methods: {
    filterUniversities: _.debounce(async function(search) {
      // 空搜索时清空下拉列表
      if (!search) {
        this.universities = [];
        return;
      }
      try {
        const response = await axios.get(`http://universities.hipolabs.com/search?name=${encodeURIComponent(search)}`);
        this.universities = response.data;
      } catch (error) {
        console.error('Error fetching universities:', error);
      }
    }, 500),
  }
}
</script>

已尝试方案

  • 多次询问ChatGPT及微调模型
  • 套用Reddit和Stack Overflow上的其他解决方案
  • 精神崩溃、哭泣、借酒消愁

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 07:00:39