Comments (14)
I think I could reproduce it too. Easily with large row size.
from material-react-table.
But as I understand it, as the components in the table increase, the lags will reappear. Memo in virtualized table does not help :(
That's kind of the nature of the beast. The more features you enable, and the more rows and columns you render at once, the lower the performance will be. I recommend using pagination in those instances.
It does appear that virtualization and row expansion don't play well together. Makes sense as any row height variation seems to confuse react-virtual
from material-react-table.
@AndreyGrek @scott-avery @e-cloud For those of you still using this library, v1.4.0 now has addressed the major problems here. This should be fixed
from material-react-table.
I'm exploring if I need to roll back to a previous beta version of @tanstack/react-virtual
or even back to react-virtual
v2 which did not have this problem
from material-react-table.
as of v0.34.0
, it has been rolled back to react-virtual v2.10.4 where the problem does not appear to exist. Something is off with the estimateSize or scrolling ref logic in v3.
from material-react-table.
@KevinVandy I am afraid that issue still exists after rollback. Scroll more and you will find some rows flickering.
Both from online storybook and my local clone storybook.
My browser version is Chrome 104.0.5112.81.
from material-react-table.
@KevinVandy I am afraid that issue still exists after rollback. Scroll more and you will find some rows flickering.
Both from online storybook and my local clone storybook.
My browser version is Chrome 104.0.5112.81.
By flickering do you mean that it takes a second for the new rows to fully render in? Or are you still seeing large up and down vibrations that never stop?
There might always be some delay in the rows rendering. The uncontrolled infinite bouncing up and down is what I'm hoping is solved now.
from material-react-table.
@KevinVandy it's about the vibrations. It might be some calculation edge case in that library.
from material-react-table.
@scott-avery I've tried to find the problem on v0.36.0 on a Mac, Windows PC, and Android phone, and don't see the vertical vibrations anymore on my storybook or docs site. I can re-open if it is confirmed to still be happening though.
More work in general is needed for virtualization performance. Really want to be able to use @tanstack/react-virtual
v3 once this is figured out.
from material-react-table.
Tried for hours to improve this, but it seems to be a flaw with react-virtual where when rows are differing heights are scrolled into and out of view at the same time cause this jitter. Slight improvements have been made by using some measureRefs internally, but the main fix is to ensure all rows have the same height. Setting a compact
density state is one way to do that, since it sets whitespace: nowrap;
internally on table cells.
from material-react-table.
good job. I will also investigate how to improve it later.
from material-react-table.
Good afternoon!
Faced the same problem that lines "dance". But we also got lags when adding components, for example:
- added enableExpanding
- added export with checkboxes
As I understand it, there is a constant rerender when scrolling and, accordingly, the more components, the more lags. Video with profiler enabled:
viteo.table.mov
We managed to partially fix the lags by reducing the overscan:
But as I understand it, as the components in the table increase, the lags will reappear. Memo in virtualized table does not help :(
from material-react-table.
It's so sad. But I'll still look for a solution, if I write something here or expose it to you PR
from material-react-table.
Good News. This will be fixed in v1.4. Thanks in part to @AndreyGrek 's PR.
from material-react-table.
Related Issues (20)
- muiColumnActionsButtonProps column not override icon HOT 1
- Error show hiding column HOT 2
- using onIsFullScreenChange will break the fullscreen button HOT 2
- All poppers are broken in fullscreen mode when `zIndex` is modified via `muiTablePaperProps` HOT 2
- Date filtering doesn't work on android HOT 3
- Since V2 header groups with column resizing have a different width to the sum of their sub headers HOT 1
- Filter variant: range-slider not displaying correctly in popover filter display mode HOT 2
- Tooltip for active filter shows "undefined" when a custom filter function is used HOT 2
- Incompatibility with <ThemeProvider/> from '@mui/joy/styles' HOT 4
- Dynamic column pinning is not working HOT 1
- Issues with extra width on sub headers when using grid-no-grow and compact density HOT 7
- Table does not refresh with update pagination state when turn on manual Pagination HOT 10
- highlight-words libray is giving Math.random vunerbility scan as high HOT 5
- Scrolling bug - using RowVirtualization HOT 1
- Basic Example not working HOT 1
- Since V2 - group by arrows displayed at the end of the row HOT 2
- Using a MUI icon for a column Header results in strange extra space HOT 4
- "Show All Columns Bug"
- When enabling row virtualization and setting minSize to 'fit-content' and maxSize to 'auto' in the default column configuration, the column width squeezes to 0, causing overlapping. HOT 2
- isMounted ref not correctly used HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from material-react-table.