Vue2,二次打开el-dialog,el-input赋值后不能输入的问题

1:问题描述:二次打开dialog后页面有一个el-input手动赋值后,在改input就不能改变了;

赋值代码如下

this.form.uid = '123'

2:解决方法

改为 this.$set(target,key,value) 赋值即可,注意key是字符串,要加引号

this.$set(this.form,'uid','123')

原因解释:

Vue 2 的响应式系统在初始化时会对 data 中已经存在的属性进行追踪。这意味着,如果 this.form 对象在组件初始化时已经存在,并且已经定义了 uid 属性,那么 Vue 能够检测到 uid 属性的变化,并更新视图。

赋值时机问题:

  • 在某些情况下,如果组件的渲染顺序或生命周期钩子函数的使用不当,可能会导致在 el-input 初始化之前就对 form.uid 进行了赋值。 这可能会导致 el-input 无法正确地绑定到 form.uid 属性。