omi icon indicating copy to clipboard operation
omi copied to clipboard

this.store.set 使用点设置值会导致修改时取值错误

Open Happy-DJ opened this issue 4 years ago • 0 comments

当 this.store.set(this.store.data,'apply.form.personAddress',11111) 修改值的时候会在$observerPath下创建新变量 apply.form.personAddress, { $observerPath:'#', apply:{ list:[], form:{id:'',personAddress:''} }, apply.form.personAddress:1111 }

这个时候如果通过apply.form修改了personAddress值,这个时候并不会修改$observerPath生成的'apply.form.personAddress'值,导致重新修改值父判断为未修改

比如

  1. this.store.set(this.store.data,'apply.form.personAddress',11111)
  2. this.store.set(this.store.data,'apply.form',{personAddress:''})
  3. this.store.set(this.store.data,'apply.form.personAddress',11111)

这个时候第三步修改失败, obaa.js onPropertyChanged 判断value等于oldValue 不进行修改

测试 prop = ‘apply.form.personAddress’ this.$observeProps[prop] = 'abvc' // 会创建新key 'apply.form.personAddress':'abvc' this.$observeProps['apply']['form']['unitAddress'] = 'bbbbbbb' // 修改不会信创建信key

Happy-DJ avatar Oct 25 '20 02:10 Happy-DJ