亲宝软件园·资讯

展开

el-radio回显无法选择 element编辑表单el-radio回显之后无法选择的问题解决

南极大冰块 人气:6
想了解element编辑表单el-radio回显之后无法选择的问题解决的相关内容吗,南极大冰块在本文为您仔细讲解el-radio回显无法选择的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:el-radio回显无法选择,el-radio回显,下面大家一起来学习吧。

前言

提前说明哦,这是一篇很基础类的文章,只适合小小白阅读,因为以下文章内容来源于我刚入行时的笔记。各位高人请绕道,避免浪费时间,谢谢~

今天主要来谈一下element-ui编辑表单中的el-radio回显之后无法选择的问题,主要涉及到vue的双向绑定,以及element-ui编辑表单中的el-radio的默认类型。

问题

这是一个困扰了我半上午的bug,表单样式及代码如下。

问题是回显数据之后,当我点击其他的radio想要选择的时候,勾选不了。

在网上找到了一样的问题,有解决方案,同样没有找到原因。

网上的解决方案

原本是把从后台得到的数据res.data直接赋值给editPowerForm,现在需要先把res.data赋值给let obj,然后再由obj赋值给editPowerForm,就可以了。

原因是editPowerForm没有声明radio这一变量,vue中对数据双向绑定的支持限于基本添加删除的方法,详情看官网。在这里相当于直接赋值给未声明的变量,所以双向绑定不会被vue监听,即没有刷新。而先赋值给obj,相当于radio在被赋值前已经被声明了,所以可以被双向绑定监听到。

说的有点绕,总之就是对象的某个属性要先被创建,才能被vue双向绑定监听到。

还有需要注意的是:

radio的值默认应该是string类型,如果后台返回的值是int类型,radio同样不会默认选中。

总所周知,在引用js对象时,引用的其实是一个索引地址,也因此前端才延伸出深拷贝浅拷贝的所在,当对象内只发生改变时,索引值其实是不变的,即旧值与新值相同,因为它们索引指向的都是同一个对象。

其实直接使用$set,或者watch进行深度监听也是可以的。庆幸的是,现在vue3中使用proxy代理来实现双向绑定,再也不用担心数组/对象发生变化却监听不到的问题了!

加载全部内容

相关教程
猜你喜欢
用户评论