vue中对象赋值但是视图不更新的问题
图1:
图2:
图3:
图4:
图5:
RT,当前赋值方式是直接将一个对象赋值给另一个对象,因为是要将一个表单修改掉,我因为测试需要,把index写死掉了【图4是为了可以看到Form和Table的关系所以选了第5条,不是第0条,请略过这个细节】,这个Table是嵌套在Dialog里面的,现在测试控制台输出的两次结果不同,说明确实赋值成功了,但是视图不知为啥没更新,还是原先的样子【见图1~4】
但是如果写成 “对象.属性” 这样的赋值就可以触发视图更新【见图5】
求大佬。。。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这样肯定没问题 this.$set(this.tableData,index,obj); 将tableData里面下表为index的元素用obj 进行替换;
let obj = Object.assgin({},this.tableData[index]); 后面你修改obj就好了,最后this.$set(this.tableData,index,obj)
ES5中无缝对数组变化进行监听。所以在vue中使用 array[0] = 1 视图是不会同步变更的,应该使用数组变异方法 splice,pop,push等方法进行数组修改,或者使用vue自带的 this.$set(array, index, data) 进行数组修改
比如:
this.data.splice(0,1, 100)
this.$set(data, 1, 100)