bug(cdkTable): virtual scroll does not work for tables with cdkRowDefWhen

Offen
#32,670 5 Kommentare 5 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
55/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Ruhig
Tech-Stack
angular, typescript
Bereich
frontend

Rechercherichtung

Beginne mit dem verknüpften StackBlitz cdk-table-virtual-scroll-example, aktualisiere es auf Angular 21.1, führe es aus und scrolle durch die Tabellen, um das Problem zu reproduzieren. Verfolge das Verhalten der Virtual-Scroll-Tabelle mit mehreren cdkRowDefWhen-Definitionen; abgeschlossen ist die Aufgabe, wenn wiederverwendete Zeilen ihre Eigenschaften genauso anzeigen wie ohne Virtual Scroll.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

area: cdk/table feature P3
Is this a regression?
  • Yes, this behavior used to work in the previous version
The previous version in which this bug was not present was

No response

Description

Virtual scroll does not work for tables with multiple cdkRow definitions. Properties remain undefined when a line from another definition is reused.

Reproduction

StackBlitz link: cdk-table-virtual-scroll-example
Steps to reproduce:

  1. download and update the project to Angular 21.1 (sorry, I struggled with updating on StackBlitz)
  2. run the project and scroll the tables down
Expected Behavior

See the lines as if there were no virtual scroll.

Actual Behavior

Rows that have reused a row of the other definition doesn't show their property. It is undefined.

Environment
  • Angular: 21.1.0
  • CDK/Material: 21.1.0
  • Browser(s):
  • Operating System (e.g. Windows, macOS, Ubuntu):
Vorherrschende Sprache
TypeScript
Sterne
25k
Forks
6.9k
Ø Merge
2 T. 7 Std.
Gemergte PRs (30 T.)
83

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus angular/components

Alle Issues in angular/components

Ähnliche Issues

Weitere Issues zu TypeScript

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.