cdkvirtual,当我们需要较少的数据进行迭代时不起作用

问题描述 投票:0回答:1

当我过滤数组时,我们的数据较少,我们没有得到垂直滚动。因此,*cdkVirtualFor不重新呈现UI。当我们有更多数据时,它会起作用。

如果我始终使用*ngFor,则始终有效。

使用* ngFor是我的情况下的更好选择,还是我们可以使用* cdkVirtualFor进行一些更改以解决此问题?

或这与cdk-virtual-scroll-viewport的高度有关吗?

angular angular8 ngfor angular-cdk-virtual-scroll
1个回答
0
投票

在FixedSizeVirtualScrollStrategy中,这是默认值,有一个名为onDataLengthChanged的方法。仅当传递的项目的引用发生更改时才调用它。为了看到效果,您应该替换整个项目数组。换句话说,您应该将数组视为不可变数组。例如,如果我有一个包含100个项目的数组,并在其上运行以下代码,则虚拟滚动不会自我更新,因为数组引用未更改。

    let i = 90;
    while (i > 0) {
      i--;
      this.items.pop();
    }

但是如果我用如下代码替换数组引用。它会理解的。并自行更新

this.items = this.items.splice(0, 10);
© www.soinside.com 2019 - 2024. All rights reserved.