Column Hiding Feature Guide
The Column Hiding feature is enabled by default, and allows the user to hide data columns from either the column actions menu or the columns menu.
Relevant Props
# | Prop Name | Type | Default Value | More Info Links | |
---|---|---|---|---|---|
1 |
|
| |||
No Description Provided... Yet... | |||||
2 |
| TanStack Table Column Visibility Docs | |||
If provided, this function will be called with an updaterFn when state.columnVisibility changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table. |
Relevant Column Options
Relevant State
# | State Option | Type | Default Value | More Info Links | |
---|---|---|---|---|---|
1 |
|
| TanStack Table Column Visibility Docs | ||
No Description Provided... Yet... |
Hide Some Columns by Default
You can easily hide columns by default by setting the columnVisibility
state
or initialState
to hide the desired columns by id.
<MaterialReactTablecolumns={columns}data={data}initialState={{ columnVisibility: { firstName: false } }} //hide firstName column by default/>
Disable Column Hiding
If you don't want this feature to be enabled at all, you can disable it by setting the enableHiding
prop to false
.
<MaterialReactTable columns={columns} data={data} enableHiding={false} />
Alternatively, you can disable hiding specific columns by setting the enableHiding
column option to false
per column.
If you want to hide certain columns by default, you can specify an column visibility in the initialState.columnVisibility
prop. This can also be useful for making the column hiding state persistent.
First Name | Last Name | City | State |
---|---|---|---|
Dylan | Murray | East Daphne | Kentucky |
Raquel | Kohler | Columbus | Ohio |
Ervin | Reinger | South Linda | West Virginia |
Brittany | McCullough | Lincoln | Nebraska |
Branson | Frami | Charleston | South Carolina |
1import React, { FC, useMemo } from 'react';2import MaterialReactTable, { MRT_ColumnDef } from 'material-react-table';34const Example: FC = () => {5 const columns = useMemo(6 () =>7 [8 {9 accessorKey: 'firstName',10 enableHiding: false,11 header: 'First Name',12 },13 {14 accessorKey: 'lastName',15 enableHiding: false,16 header: 'Last Name',17 },18 {19 accessorKey: 'address',20 header: 'Address',21 },22 {23 accessorKey: 'city',24 header: 'City',25 },26 {27 accessorKey: 'state',28 header: 'State',29 },30 ] as MRT_ColumnDef<typeof data[0]>[],31 [],32 );3334 const data = useMemo(35 () => [36 //data definitions...73 ],74 [],75 );76 return (77 <MaterialReactTable78 columns={columns}79 data={data}80 initialState={{ columnVisibility: { address: false } }}81 />82 );83};8485export default Example;86
Enable Column Hiding on Display Columns
By default, column hiding is only enabled on data columns. Display columns, such as mrt-row-numbers
, mrt-row-select
, etc. do not have column hiding enabled, and their toggle will be disabled. You can turn that back on by setting the enableHiding
option to true
in the displayColumnsOptions
prop.
<MaterialReactTablecolumns={columns}data={data}displayColumnDefOptions={{'mrt-row-numbers': {enableHiding: true, //now row numbers are hidable too},}}/>
See the Display Columns Feature Guide for a more in depth explanation of the displayColumnsOptions
prop.
View Extra Storybook Examples