在React-Table中实现条件样式可以通过自定义单元格渲染器来实现。以下是一个示例:
首先,您需要安装React-Table库:
npm install react-table
然后,您可以创建一个React组件来渲染表格,并在其中定义条件样式的逻辑。假设您有一个数据数组data
,其中包含要显示的数据。
import React from 'react';
import { useTable } from 'react-table';
const Table = ({ data }) => {
const columns = [
// 定义表格列
{
Header: '姓名',
accessor: 'name',
},
{
Header: '年龄',
accessor: 'age',
},
{
Header: '性别',
accessor: 'gender',
},
];
const getCellClassName = (cellValue) => {
// 根据条件返回样式类名
if (cellValue === '男') {
return 'male';
} else if (cellValue === '女') {
return 'female';
}
return '';
};
const {
getTableProps,
getTableBodyProps,
headerGroups,
rows,
prepareRow,
} = useTable({ columns, data });
return (
<table {...getTableProps()}>
<thead>
{headerGroups.map((headerGroup) => (
<tr {...headerGroup.getHeaderGroupProps()}>
{headerGroup.headers.map((column) => (
<th {...column.getHeaderProps()}>{column.render('Header')}</th>
))}
</tr>
))}
</thead>
<tbody {...getTableBodyProps()}>
{rows.map((row) => {
prepareRow(row);
return (
<tr {...row.getRowProps()}>
{row.cells.map((cell) => (
<td
{...cell.getCellProps()}
className={getCellClassName(cell.value)}
>
{cell.render('Cell')}
</td>
))}
</tr>
);
})}
</tbody>
</table>
);
};
export default Table;
在上面的代码中,我们定义了一个getCellClassName
函数,它根据单元格的值返回相应的样式类名。您可以根据自己的需求自定义这个函数。
然后,我们使用useTable
钩子来创建表格,并在渲染单元格时将样式类名应用到<td>
元素上。
最后,您可以在父组件中使用Table
组件,并将数据传递给它:
import React from 'react';
import Table from './Table';
const App = () => {
const data = [
{ name: '张三', age: 25, gender: '男' },
{ name: '李四', age: 30, gender: '女' },
{ name: '王五', age: 28, gender: '男' },
];
return <Table data={data} />;
};
export default App;
在上面的示例中,我们根据性别字段的值为单元格应用了不同的样式类名。您可以根据自己的需求修改条件样式的逻辑。
请注意,这只是一个简单的示例,您可以根据自己的需求进行扩展和定制。关于React-Table的更多信息和用法,请参考React-Table官方文档。
领取专属 10元无门槛券
手把手带您无忧上云