element-plus 单选组件 el-radio,选不上,又没报错,直接复制官网也不行解决方案

在使用 Vue 框架开发项目时,Element UI 是常用的组件库。最近在开发中遇到了 Element 单选框组件el-radio的双向绑定问题,直接复制element官网上的的案例下来也是不得,经过调试和探索,终于找到了解决方案,特此记录分享。

下图是官方文档的代码

一、问题描述

在一次编程中需要使用 Element 的单选框组件,于是直接复制了 Element 官网上的案例代码

然而在页面上呈现时,却出现了异常情况:要么选不了,要么多个同时选中,使用vue-devtool工具查看,双向绑定的值变成了空置,并不是我们设置的value的值

二、问题分析

经过仔细查阅 Element 组件文档和调试发现,el-radio组件实际上是通过label属性来指定当该单选框被选中时绑定值v-model应设置的值,而不是value属性。官方文档中的示例可能存在一定的误导性,或者是在特定版本中有不同的用法,导致直接复制代码后出现双向绑定失效的问题。

另外,当双向绑定的数据是对象类型时,在 Vue 3 中需要使用reactive函数来创建响应式对象,以确保数据的响应式效果。如果使用不当,也可能导致数据无法正确更新。

三、解决方案

将el-radio组件的value属性修改为label属性,代码如下:

javascript 复制代码
          <el-radio-group v-model="smsForm.messageType">
            <el-radio label="1" border>手机短信</el-radio>
            <el-radio label="2" border>邮箱</el-radio>
          </el-radio-group>

确保在定义包含双向绑定数据的对象时,使用reactive函数来创建响应式对象

javascript 复制代码
const smsForm = reactive({
  messageType: null
})

至此问题解决

相关推荐
东方小月1 小时前
从零开发一个 Coding Agent(八):如何使用 Agent 类管理对话状态
前端·人工智能
光影少年1 小时前
RN 网络请求:Fetch / Axios 封装、超时、拦截器
前端·react native·react.js
学习星球2 小时前
Vue 3 实战:拆解 RealWorld 项目
前端·vue.js
铁皮饭盒2 小时前
网页端, 6.5MB人脸识别模型, 谷歌框架, 又快又准
前端·javascript·后端
xiaohaiAIgeo2 小时前
【2026年】ASHRAE 110与EN 14175通风柜测试标准对比:进口与国产品牌性能差距
java·前端·数据库·科普知识
用户2930750976692 小时前
TypeScript 必考题:Type 与 Interface 全面对比
前端
hunterandroid2 小时前
[鸿蒙从零到一] HarmonyOS 媒体能力实战:图片、音频与视频处理
前端
打呵欠的猫2 小时前
我让 AI 封装了一个 ImageUpload 组件,它设计的 5 层校验链路比我想的周全
前端·ai编程
AlexMaybeBot2 小时前
躺在沙发上开发 Openclaw 的移动端APP
前端·flutter
用户2181697049303 小时前
Flutter(十三)Text Image TextField
前端