如何以编程方式重置 react-table 中的滚动条
How to programmatically reset scroll in react-table
我希望能够在加载新数据时将滚动位置重置为 0。截至目前,当新数据作为道具传递时,滚动位置仍然存在。这会给用户带来一些困惑。
编辑:滚动在 React-Table 组件中,而不是页面滚动。
是的,您可以通过编程重置滚动到顶部使用组件更新生命周期componentDidUpdate() {
window.scrollTo(0,o);
}
找到解决方案。我使用了一个完美的滚动条组件,我用 table 的传递对象做了一个引用,这样我就可以调用 this.scroll.scrollbar.scrollTo(0,0)
来重置 table 滚动条。
const PerfectScrollbarBody = (props, table) => (
<div {...props} className={"rt-tbody"}>
<Scrollbar ref={node => (table.scroll = node)}>{props.children}</Scrollbar>
</div>
);
我认为这可以像这样简单地工作。
export function resetScrollInsideTable(indexTable) {
let tableBody = document.getElementsByClassName('rt-tbody')[indexTable];
tableBody.scrollTop = 0;
}
假设您在 DOM 中有 2 个 react-table 组件。
如果你想重置第一个反应的滚动-table,在你的获取数据中使用它,或者你的按钮点击查询然后显示数据。
resetScrollInsideTable(0)
并为第二次反应进行重置-table
resetScrollInsideTable(1)
我希望能够在加载新数据时将滚动位置重置为 0。截至目前,当新数据作为道具传递时,滚动位置仍然存在。这会给用户带来一些困惑。
编辑:滚动在 React-Table 组件中,而不是页面滚动。
是的,您可以通过编程重置滚动到顶部使用组件更新生命周期componentDidUpdate() {
window.scrollTo(0,o);
}
找到解决方案。我使用了一个完美的滚动条组件,我用 table 的传递对象做了一个引用,这样我就可以调用 this.scroll.scrollbar.scrollTo(0,0)
来重置 table 滚动条。
const PerfectScrollbarBody = (props, table) => (
<div {...props} className={"rt-tbody"}>
<Scrollbar ref={node => (table.scroll = node)}>{props.children}</Scrollbar>
</div>
);
我认为这可以像这样简单地工作。
export function resetScrollInsideTable(indexTable) {
let tableBody = document.getElementsByClassName('rt-tbody')[indexTable];
tableBody.scrollTop = 0;
}
假设您在 DOM 中有 2 个 react-table 组件。 如果你想重置第一个反应的滚动-table,在你的获取数据中使用它,或者你的按钮点击查询然后显示数据。
resetScrollInsideTable(0)
并为第二次反应进行重置-table
resetScrollInsideTable(1)