Mar*_*ode 4 reactjs react-table
我正在渲染一个反应表,需要知道在父组件中选择了哪些行。
这是我的表格组件:
const TableComponent = (props) => {
const { columns, data } = props;
const {
getTableProps,
getTableBodyProps,
headerGroups,
rows,
prepareRow,
state: { selectedRowIds },
} = useTable(
{
columns,
data,
},
useRowSelect
);
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.slice(0, 10).map((row, i) => {
prepareRow(row);
return (
<tr {...row.getRowProps()}>
{row.cells.map((cell) => {
return (
<td {...cell.getCellProps()}>{cell.render("Cell")}</td>
);
})}
</tr>
);
})}
</tbody>
</table>
);
};
Run Code Online (Sandbox Code Playgroud)
这是父级:
function App() {
const columns = React.useMemo(
() => [
{
Header: "Name",
columns: [
{
Header: "First Name",
accessor: "firstName",
},
{
Header: "Last Name",
accessor: "lastName",
},
],
},
{
Header: "Info",
columns: [
{
Header: "Age",
accessor: "age",
},
{
Header: "Visits",
accessor: "visits",
},
{
Header: "Status",
accessor: "status",
},
{
Header: "Profile Progress",
accessor: "progress",
},
],
},
],
[]
);
const data = React.useMemo(() => makeData(10, 3), []);
return (
<Table columns={columns} data={data} />
);
}
Run Code Online (Sandbox Code Playgroud)
我需要知道selectedRowIds父组件中的。有谁知道我如何从孩子那里得到这些?
child component您可以使用useImperativeHandleHook 命令句柄公开该方法。
借助这个钩子,您可以获取父组件中选定的行 ID。
useImperativeHandle(ref, () => ({
getSelectedRows:()=> selectedRowIds
}),[selectedRowIds]);
Run Code Online (Sandbox Code Playgroud)
在父组件中,您必须使用ref调用该
方法parentRef.current.getSelectedRows()
如果有帮助请告诉我。
| 归档时间: |
|
| 查看次数: |
2542 次 |
| 最近记录: |