Vue为什么控件有值,但是却改动不了?

在Vue项目中,遇到控件显示有值但无法更改的问题,原因是JavaScript限制Vue无法监听对象新增属性。解决方案包括使用`this.$set()`或`Object.assign()`方法更新数据,确保Vue能响应数据变化。
摘要由CSDN通过智能技术生成

Vue为什么一些控件有值,但是却改动不了?(使用$set)

最近工作项目中,遇到一个问题,特此来记录一下。
在这里插入图片描述
上图是从服务端返回的数据。这里的akyh…属性,是我直接push进去的。
但是我在界面上再想进行更改,却发现更不动,再加上还有一些表单的验证,这就导致:
在这里插入图片描述
靠!我input框里面有值,居然还给我报错???

后来发现了一些不同,我们来看下面这张图片:
在这里插入图片描述
通过比较第一张图片和第三章图片,我发现第三张图片多了get和set方法。

原因

由于受JavaScript的限制,vue.js不能监听对象属性的添加和删除,因为在vue组件初始化的过程中,会调用getter和setter方法,所以该属性必须是存在在data中,视图层才会响应该数据的变化

解决办法
1.使用this.$set(obj, key, value)/vue.set(obj, key, value

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值