Layout breaks when changing lanes option with measureElement used
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
- 45/100
- Issue-Typ
- Bug
- Klarheit
- Größtenteils klar
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- typescript
- Bereich
- frontend
Rechercherichtung
Beginne mit der verlinkten CodeSandbox-Reproduktion und verfolge den useVirtualizer-Pfad, der measureElement, dynamische lanes und zwischengespeicherte Elementmessungen umfasst. Reproduziere den Fehler, indem du bis zum Ende scrollst, die lanes von 10 auf 5 änderst, und bestätige, dass das Layout die Positionen neu berechnet, ohne falsch positionierte Elemente oder leere Bereiche.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Describe the bug
When using measureElement with useVirtualizer, changing the number of lanes dynamically causes the layout to break.
The virtualizer calculates incorrect ranges for items with indices beyond the visible range, resulting in mispositioned items or empty spaces.
Your minimal, reproducible example
Steps to reproduce
- Scroll to the end of the list (so that only higher-index items are rendered).
- Change the number of lanes from 10 to 5 dynamically.
Expected behavior
- The virtualizer should correctly invalidate cached measurements for all items and recalculate their positions when the number of lanes changes.
- The layout should adjust seamlessly after changing lanes.
How often does this bug happen?
Every time
Screenshots or Videos
No response
Platform
Any platform
tanstack-virtual version
3.13.12
TypeScript version
5.2.2
Additional context
No response
Terms & Code of Conduct
- I agree to follow this project's Code of Conduct
- I understand that if my bug cannot be reliable reproduced in a debuggable environment, it will probably not be fixed and this issue may even be closed.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 7.1k
- Forks
- 478
- Ø Merge
- 1 T. 2 Std.
- Gemergte PRs (30 T.)
- 34
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus TanStack/virtual
-
anchorTo: 'end' loses the end when the scroll element shrinksEvtl. vergeben @langleyd hat das vor 15 Tagen übernommen. Offen
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 68/100
Maintainer antworten meist innerhalb von 1 Tag
-
marko-virtual: scrollToEnd during an in-flight prepend strands the view one prepend above the bottom (chat-pretext e2e fails on CI)Evtl. vergeben @prayaggaikwad96 hat das vor 9 Tagen übernommen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 55/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 42/100
TanStack/virtual#1252 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
lit-virtual: VirtualizerController never applies updated options after constructionEvtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 45/100
Maintainer antworten meist innerhalb von 1 Tag
-
Dynamic sizes lit demo crashes/ loads very slowlyEvtl. wieder frei Ein Pull Request dazu wurde ohne Merge geschlossen. Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 45/100
TanStack/virtual#1188 · 11 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in TanStack/virtual
Ähnliche Issues
-
bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
cloudscape-design/components#5184 ·
Maintainer antworten meist innerhalb von 2 Tagen
-
enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
JarX-Concepts/react-native-platform-components#130 ·
Maintainer antworten meist innerhalb von 1 Tag
-
fix(api): optimize-for-web /preview outer catches miss asDecoderOutOfMemory on V8 OOM and SIGKILLOffenarea: backend bug priority: low
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 83/100
snapotter-hq/SnapOtter#3773 ·
Maintainer antworten meist innerhalb von 1 Tag
-
ai-driven-qa ux-audit
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
linagora/twake-contacts-frontend#386 ·
Maintainer antworten meist innerhalb von 1 Tag
-
git: README should state plainly that without --repository every reachable repository is in scopeOffendocumentation server-git v2
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 84/100
modelcontextprotocol/servers#5225 ·
Maintainer antworten meist innerhalb von 1 Tag