方向: 语法
描述: 在使用iview图片上传时,使用了this.set在handleRemove(file)()函数中强制对this.uploadList进行数据更新以实现删除的效果,但使用this.$set
时发现并为未生效,在循环中打印的this.uploadList内容没变
出现原因: 推测是this.$set没生效
技术栈: vue+iview
疑问: this.$set
是最近才接触到的,用来解决数据未回显问题(通常数据打印是正确的,但通过v-model绑定是dom元素没有更新),未生效可能是因为在this.uploadList中已经存在了key(使用的是index),故而导致失效。
结论: $set
不能为已存在的key添加响应检测
解决方法: 进行this.$set
前使this.uploadList = [],使this.uploadList不存在set中赋给this.uploadList的key【这里是为了快速实现效果,并未深究其他方法,应该有更合理的方式解决】
出错现场:
通过this.$set
后this.uploadList长度不变,内容没变
代码如下: