Open lfpose opened 7 months ago
It is happening to me as well. I'll add my observations :
It seems that it happens when virtualization is ON and when there are too much columns to be displayed on the screen.
When I log getHeader().getCells()
, it appears that cells that aren't on the screen are considered empty.
Image (there a 32
key because this column is sticky to the end, so it is rendered on the screen)
headerCells.find(function (cell) {
var cellProps = cell.props;
if (cellProps.id === column.id) {
headerCell = cell.getDOMNode();
}
});
So my guess is that the cell is sometimes undefined because it gets skipped from getCells()
. That's why it triggers the error "Cannot read properties of undefined (reading 'props')".
It doesn't happen when skipHeader
is true
, because it doesn't enter this part (I think)
what edition are you using - community / enterprise enterprise
version for
@inovua/reactdatagrid-community
or@inovua/reactdatagrid-enterprise
5.10.2What you did: Try to set column size auto with skipHeaders = false and virtualization enabled.
What happened: Error is thrown, because its trying to read a property from an undefined value.
Error in reactdatagrid code: useColumnsSizing.js
This throws an error when
cell
is undefined.cell
is undefined if grid has many columns and is using virtualizationReproduction https://codesandbox.io/s/wandering-sun-dzgx34?file=/src/App.js
instructions: scroll to the right then click autosize. Unexpected error is thrown.
Problem description:
Error is thrown and column is not resized as expected. It is expected that a column should be resized when calling the method. When we scroll, as soon as first column is out of the screen its virtualized. When calling setColumnSizeAuto with a virtualized column, then it will throw an error. Note: only if skipHeaders = false
Suggested solution:
Validate that the cell is not undefined or use optional chaining useColumnsSizing.js