从react-table中点击Table Row转到另一个页面可以通过以下步骤实现:
useRowSelect
钩子来启用行选择功能,并设置getToggleRowSelectedProps
方法来获取行选择的属性。getToggleRowSelectedProps
方法来获取行选择的属性,并将其应用到行的元素上。history.push
方法来导航到另一个页面,并将被点击的行的数据作为参数传递给目标页面。以下是一个示例代码:
import React, { useState } from 'react';
import { useTable, useRowSelect } from 'react-table';
import { useHistory } from 'react-router-dom';
const TableComponent = () => {
const history = useHistory();
const [selectedRow, setSelectedRow] = useState(null);
const data = [
{ id: 1, name: 'John Doe', age: 25 },
{ id: 2, name: 'Jane Smith', age: 30 },
{ id: 3, name: 'Bob Johnson', age: 35 },
];
const columns = [
{ Header: 'ID', accessor: 'id' },
{ Header: 'Name', accessor: 'name' },
{ Header: 'Age', accessor: 'age' },
];
const {
getTableProps,
getTableBodyProps,
headerGroups,
rows,
prepareRow,
selectedFlatRows,
} = useTable(
{
columns,
data,
},
useRowSelect,
(hooks) => {
hooks.visibleColumns.push((columns) => [
{
id: 'selection',
Header: ({ getToggleAllRowsSelectedProps }) => (
<input type="checkbox" {...getToggleAllRowsSelectedProps()} />
),
Cell: ({ row }) => (
<input type="checkbox" {...row.getToggleRowSelectedProps()} />
),
},
...columns,
]);
}
);
const handleRowClick = (row) => {
setSelectedRow(row.original);
history.push('/another-page', { rowData: row.original });
};
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()}
onClick={() => handleRowClick(row)}
style={{ cursor: 'pointer' }}
>
{row.cells.map((cell) => (
<td {...cell.getCellProps()}>{cell.render('Cell')}</td>
))}
</tr>
);
})}
</tbody>
</table>
);
};
export default TableComponent;
在上面的示例代码中,我们使用了React Router库来处理页面导航,并使用history.push
方法将被点击的行的数据作为参数传递给目标页面。你可以根据你的实际需求进行相应的修改和调整。
此外,腾讯云提供了一系列与云计算相关的产品,例如云服务器、云数据库、云存储等。你可以根据具体的需求选择适合的产品。你可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多关于腾讯云的产品和服务。
领取专属 10元无门槛券
手把手带您无忧上云