react-table - 如何固定元素的宽度

react-table - How to fix width of th elements

我使用 react-table 我想使用 table-layout: fixed.

我想使用 classNames 指定列的宽度。

有什么方法可以让 react-table 为某些列设置固定宽度? 如果没有,我如何将 classNames 添加到 <th> 元素?

此问题解决了将类名添加到单元格 https://github.com/tannerlinsley/react-table/issues/1612 但不是 <th> 元素的问题。

什么是可行的方法?

ps:我想避免使用 :nth-child 选择器,因为我不想依赖于 table.

上的列位置

好的,我在查看示例代码时找到了答案。

https://react-table-omega.vercel.app/docs/examples/data-driven-classes-and-styles

解决方案是在列中定义额外的属性:

{
  Header: 'Name',
  columns: [
    {
      Header: 'First Name',
      accessor: 'firstName',
      className: 'user',
    },
  ],
},

此信息将在 column 中提供。现在我们可以将这些信息传递给column.getHeaderProps([....])。它会考虑到我们传递的道具。

 <tr {...headerGroup.getHeaderGroupProps()}>
   {headerGroup.headers.map(column => (
     <th {...column.getHeaderProps([
       { className: column.className },
     ])}>
       {column.render('Header')}
     </th>
   ))}
 </tr>

通过这种方式,<th>可以接收到我们在columns数组中设置的props。