Comments (2)
In case you confirm this to be an issue/not intended behavior, it seems the culprit is here:
https://github.com/TanStack/table/blob/main/packages/table-core/src/utils/getGroupedRowModel.ts#L168
The groupBy
function only handles top-level rows. I was able to go around this and implement desired behavior (i.e. values from all rows and subRows get grouped by) by making it recursive like this:
function groupBy<TData extends RowData>(
rows: Row<TData>[],
columnId: string,
opts: Partial<{
groupMap: Map<any, Row<TData>[]>;
}> = {}
) {
const groupMap = opts.groupMap ?? new Map<any, Row<TData>[]>();
return rows.reduce((map, row) => {
const resKey = `${row.getGroupingValue(columnId)}`;
const previous = map.get(resKey);
if (!previous) {
map.set(resKey, [row]);
} else {
previous.push(row);
}
if (row.subRows) map = groupBy(row.subRows, columnId, { groupMap: map });
return map;
}, groupMap);
}
Looking forward to know what you think of this. This would probably be a breaking change for some? Since we can pass a getGroupedRowModel
function to useReactTable
, that's probably what I'll do for the time being. However, maybe a table option could be added to allow this behavior?
from table.
I need to display tabular data by groups so that above each group there is a row that is the group header and I would also like to add a button to hide the group in it, but the virtualizer obliges me not to group the data and go through rows and not leaf or flat rows. Otherwise, it doesn't work properly. Are there any examples that I could look at?
The example in the screenshot was taken from examples -> subComponent, but I can't reproduce this using c virtualizer
from table.
Related Issues (20)
- your website is down HOT 6
- useQwikTable undefined sorting handlers [QwikCity} HOT 2
- Maximum update depth exceeded when hide virtualize table
- how to allow only table to expand one row at a time HOT 2
- Angular Table Column Filters and Column Grouping Examples not working HOT 3
- Does React 18 work with v6? HOT 1
- `Infinity` is not supported for pageSize HOT 2
- Table doesnโt re-render with new React Compiler + React 19 HOT 5
- multiple rendering useReactTable hook with nextjs14 HOT 1
- Column ordering weird behavior on grouped columns HOT 5
- My website
- Angular Column Ordering example does not work
- Updating a useQuery with a key crashes using React Table HOT 1
- cell.getIsAggregated should not check for zero length subrows HOT 2
- `autoResetPageIndex` seems to be default true when `manualPagination=true`, is not expectd as docs saying HOT 1
- Unexpected behavior of array filterFns (arrIncludes, arrIncludesAll, arrIncludesSome) HOT 1
- Table v8 expanding - incorrect state of parent checkbox when selecting subrows
- `getTopRows()` and `getBottomRows()` Not Referentially Stable Between Renders
- Calling `row.getParentRow()` with expanded, filtered row models and initial filtering value throws an error 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 table.