【发布时间】:2021-11-21 11:13:42
【问题描述】:
我玩 ReactTable v7 有一段时间了,遇到了以下问题:当表格被排序并使用分页器时,有时添加(或编辑)一行会导致它超出当前页面。
您可以在这里看到问题: https://codesandbox.io/s/github/tannerlinsley/react-table/tree/master/examples/material-UI-kitchen-sink
- 按名字对表格进行排序
- 按添加
- 输入名字为“zzzzz”的记录
记录已添加,但当前隐藏,这使用户感到困惑。 是否有解决问题的“标准”方法?我错过了什么吗?
在 v6 中我已经为它做了一个解决方法:
React.useEffect(() => {
if (editedElementId && reactTable) {
const { data } = reactTable.props;
if (data && data.length > 0) {
const internal = reactTable.getResolvedState();
let position = -1;
internal.sortedData.forEach((row, i) => {
if (row._original.id === editedElementId) position = i;
});
if (position >= 0) {
const pageNumber = Math.floor(position / pageSize);
setPage(pageNumber);
} else {
alert.info("Element not visible");
}
}
}
}, [editedElementId]);
...
<ReactTable
ref={(r) => {setReactTable(r);}}
...
但也许有一个内置的方法来实现它?
【问题讨论】: