vue中用JSON.parse(JSON.stringify(this.formData))来替代无效的this.$set()和this.$forceUpdate()

8 篇文章 0 订阅
2 篇文章 1 订阅

最近在开发项目时遇到了一个问题,就是在使用antdvue开发时,有一个select多选框在通过onchange清空其所有值后,再选择时,控制台能够打印出来选中的值,前台界面也能够显示选中的值,但是必填校验依旧是未选中的红框状态。
使用了this. s e t ( t h i s . f o r m D a t a , ′ n a m e ′ , v a l u e ) 和 t h i s . set(this.formData, 'name', value)和this. set(this.formData,name,value)this.forceUpdate()依旧无法让红框消失。
然而在change事件函数中使用JSON.parse(JSON.stringify(this.formData))后便能够成功更新其状态,个中缘由暂不知晓,如果有哪位大神知道,敬请指教,谢谢!

cityChange (key, option) {
	this.formData.code = undefined
    this.formData.name= undefined
	this.formData = JSON.parse(JSON.stringify(this.formData)) // 有效
	this.$forceUpdate() // 无效
	this.$set(this.formData, 'code', undefined) // 无效
}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值