一点额外的小坑
res.data.rows.map(item => {
item.childList = []
})
this.tableData = res.data.rows
给接口返回的表格数据添加child子属性,再赋值给tableData时一切正常
this.tableData = res.data.rows
this.tableData.map(item => {
item.childList = []
})
而如果先赋值tableData再添加childList属性,则会丢失响应式
导致后续给childList赋值接口的值时还是不能一次点击马上更新dom
原因是因为在vue2里,给初始对象添加新属性时,添加的属性并不是响应式的
可以使用$set来给初始对象添加响应式属性
this.tableData.map(item => {
this.$set(item, 'childList', [])
})