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

Vue遍历对象数组生成radioButton显示值而非key的问题求助

解决方案

你当前的数据结构是数组每个元素为仅含单个键值对的对象,需要分别取出每个对象的键、值绑定到对应属性即可,有两种实现方式:

方式1:直接在模板中处理(适合简单场景)

直接通过Object.keys、Object.values取单个对象的键和值绑定,同时修正错误的:key绑定:

<div
  v-for="item in data"
  :key="Object.keys(item)[0]"
>
  <radio-button
    v-model="date"
    :value="Object.keys(item)[0]"
    :label="Object.values(item)[0]"
  />
</div>

修改后v-model绑定的date值就是需要提交给API的key,label显示为对应的文本值,符合需求。

方式2:通过计算属性预处理数据(可读性、可维护性更高)

先在js部分通过计算属性把原数据转为标准的key-value结构:

computed: {
  formattedOptions() {
    return this.data.map(rawItem => {
      const optionKey = Object.keys(rawItem)[0]
      return {
        key: optionKey,
        label: rawItem[optionKey]
      }
    })
  }
}

模板直接遍历预处理后的数据即可:

<div
  v-for="option in formattedOptions"
  :key="option.key"
>
  <radio-button
    v-model="date"
    :value="option.key"
    :label="option.label"
  />
</div>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 14:24:01