树形结构数据处理,反向控制树形结构状态
2022-12-28 本文已影响0人
forever_bin
遇到这样的情况,一侧是树形结构,另一侧是选中的数据,当点击另一侧选中数据的删除按钮时候,不仅要删除数据,还要将一侧的树形结构checkbox状态更新,这时候就需要将树形结构的数据格式化
const result = dataArr.reduce((prev, next) => {
prev[next.parentId] ? prev[next.parentId].push(next) : prev[next.parentId] = [next];
return prev;
}, {});
Object.keys(result).map(key => {
result[key].map((item, i) => {
result[item.id] ? item.children = result[item.id] : ''
});
})
console.log(result)
//这样result就是得到的格式化数据,拿到数据之后处理
for (var i in result) {
this.state.chooseData.map((item1, index) => {
if (item1.id === i) {
//当前id等于格式化数据的key的时候删除当前元素,树形结构和当前元素存在上下级关系
this.state.chooseData.splice(index, 1)
}
})
}