当前位置: 首页 > 知识库问答 >
问题:

前端 - angular配合antd表格树形,为什么点击展开子集请求接口后增加数据却没显示?

韩豪
2024-09-25

angular配合antd表格树形,为什么点击展开子集请求接口后增加数据却没显示,数据明明加到children了image.png
html代码image.png
展开数据逻辑
image.png

我一开始觉得是html没渲染children,但是我看组件库的代码渲染树形不需要这样操作

共有1个答案

樊宏邈
2024-09-25

这个问题可能是由于 Angular 和 Ant Design Table 组件的变更检测机制导致的。即使数据已经正确地添加到 children 属性中,视图可能没有更新。以下是三种解决方案:
1.手动触发变更检测:在更新 children 数据后,手动触发 Angular 的变更检测。
import { ChangeDetectorRef } from '@angular/core';

constructor(private cdr: ChangeDetectorRef) {}

updateChildrenData() {

// 更新 children 数据的逻辑
this.cdr.detectChanges();

}

  1. 使用深拷贝:有时直接修改对象不会触发视图更新,可以尝试使用深拷贝来更新数据。
    this.data = JSON.parse(JSON.stringify(this.data));
  2. 刷新数据源:将数据源设置为 null,然后重新赋值。
    refreshTree() {
    let _data = this.dataSource.data;
    this.dataSource.data = null;
    this.dataSource.data = _data;
    }
 类似资料: