I using react-table and I want to use table-layout: fixed.
I would like to specify the width of the columns using classNames.
Is there any way react-table allows to set a fix width for some columns ?
If not, How could I add classNames to <th> elements ?
This issue resolves adding classNames to cells https://github.com/tannerlinsley/react-table/issues/1612 but not for <th> elements.
What would it be a viable way?
ps: I would like to avoid using :nth-child selector since I dont want to have a dependency to columns position on the table.
Ok, I found an answer when reviewing examples code.
https://react-table-omega.vercel.app/docs/examples/data-driven-classes-and-styles
The solution is by defining extra properties in the column:
{
Header: 'Name',
columns: [
{
Header: 'First Name',
accessor: 'firstName',
className: 'user',
},
],
},
This information will be available in column. Now we can pass these information to the column.getHeaderProps([....]). It will take into account the props we passed.
<tr {...headerGroup.getHeaderGroupProps()}>
{headerGroup.headers.map(column => (
<th {...column.getHeaderProps([
{ className: column.className },
])}>
{column.render('Header')}
</th>
))}
</tr>
In ghis way, <th> can receive the props we set in columns array.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With