Javascript 物料界面在表格上滚动(反应)

Javascript 物料界面在表格上滚动(反应),javascript,html,css,reactjs,material-ui,Javascript,Html,Css,Reactjs,Material Ui,我有一个表,其主体尺寸固定,如Material UI中所述。 我想听听表格的滚动事件,以便加载更多的行 哪种方法是收听此滚动的最佳方法?这并不简单,可能material ui的表格并不适合您的要求。您可能需要查看一些无限滚动组件,如react infinite或react list 也就是说,我做了一些实验,提出了在MaterialUI的表体截取滚动事件的方法 首先,捕获对表主体所在的可滚动div的引用(在本例中为其祖辈元素): 尝试了第一个解决方案,但在我的实现中不起作用 我是用材料做的-ui

我有一个表,其主体尺寸固定,如Material UI中所述。 我想听听表格的滚动事件,以便加载更多的行


哪种方法是收听此滚动的最佳方法?

这并不简单,可能material ui的表格并不适合您的要求。您可能需要查看一些无限滚动组件,如react infinite或react list

也就是说,我做了一些实验,提出了在MaterialUI的表体截取滚动事件的方法

首先,捕获对表主体所在的可滚动div的引用(在本例中为其祖辈元素):


尝试了第一个解决方案,但在我的实现中不起作用

我是用材料做的-ui@0.17.1及React@15.4.2:

创建表元素并将ref设置为名称:

<Table>
    ...
    <TableBody ref="table-body">
        ...
    </TableBody>
</Table>

这将为您提供表格的滚动事件。

是否有方法滚动到行的底部?我只是试着调整你的解决方案来设置scrollTop。但是它给了我一个警告,
无法读取null的属性'parentNode'。我们使用parentNode处理这个滚动侦听器的方式有点奇怪。parentNode我记得我最后使用了一个解决方案,但仍然不是解决这个问题的好办法。不要忘了在
componentWillUnmount()中删除事件侦听器。
componentDidMount() {
  this.viewport.addEventListener('scroll', (e) => {
    console.log(e);
  });
}
<Table>
    ...
    <TableBody ref="table-body">
        ...
    </TableBody>
</Table>
componentDidMount() {
    let tableBodyNode = ReactDOM.findDOMNode(this.refs["table-body"]).parentNode.parentNode;

    tableBodyNode.addEventListener('scroll', (e) => {
        console.log(e);
    });
}