gpt4 book ai didi

reactjs - React-Table:获取父组件中的selectedRowIds

转载 作者:行者123 更新时间:2023-12-05 03:39:48 26 4
gpt4 key购买 nike

我正在渲染一个 react 表,需要知道在父组件中选择了哪些行。

这是我的表格组件:

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>
);
};

这是父级:

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} />
);
}

我需要知道父组件中的 selectedRowIds。有谁知道我如何从 child 那里得到这些?

最佳答案

您可以使用useImperativeHandleHook子组件 公开该方法imperativehandle .

并且在这个钩子(Hook)的帮助下,您可以在父组件中获取选定的行 id。

useImperativeHandle(ref, () => ({
getSelectedRows:()=> selectedRowIds
}),[selectedRowIds]);

并且在父组件中,您必须使用 ref 调用该方法作为parentRef.current.getSelectedRows()

如果有帮助,请告诉我。

关于reactjs - React-Table:获取父组件中的selectedRowIds,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68481994/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com