树形结构数据处理,反向控制树形结构状态

遇到这样的情况,一侧是树形结构,另一侧是选中的数据,当点击另一侧选中数据的删除按钮时候,不仅要删除数据,还要将一侧的树形结构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)
        }
      })
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容