reactjs – 在React.js中为scroll事件添加事件侦听器后没有得到回调

我按照这篇文章的指示
Update style of a component onScroll in React.js为滚动事件注册事件监听器.

我有一个React组件,它从React-Bootstrap库https://react-bootstrap.github.io/中呈现一个Table组件

我想我正确地注册了事件监听器,但我不确定为什么当我向下滚动表时,我的handleScroll()回调没有被调用.是因为事件监听器没有在实际表本身上注册吗?

感谢您花时间阅读我的问题.任何反馈都表示赞赏.

这是我如何注册事件监听器的片段.

handleScroll: function(event) {
    console.log('handleScroll invoked');
  },componentDidMount: function() {
    console.log('componentDidMount invoked');
    window.addEventListener('scroll',this.handleScroll);
  },componentwillUnmount: function() {
    console.log('componentwillUnmount invoked');
    window.removeEventListener('scroll',

这是我的渲染功能的片段.

render: function() {

    var tableRows = this.renderTableRow(this.props.sheet);

    return (
      <Table striped bordered condensed hover>
        <TableHeaderContainer
          tableTemplateName={this.props.tableTemplateName}
          sheetName={this.props.sheet.name}/>
        <tbody>
          {tableRows}
        </tbody>
      </Table>
    );
  }
你的代码看起来不错,所以它可能不是滚动的窗口本身.表放在div中还是溢出的东西:auto或overflow:scroll?如果是这样,则必须将侦听器附加到滚动的实际元素,例如,
document.querySelector('.table-wrapper')
    .addEventListener('scroll',this.handleScroll);

如果是这种情况,那么只需将React onScroll处理程序添加代码中的包装器就更好了

<div onScroll={this.handleScroll}><Table....

相关文章

一、前言 在组件方面react和Vue一样的,核心思想玩的就是组件...
前言: 前段时间学习完react后,刚好就接到公司一个react项目...
前言: 最近收到组长通知我们项目组后面新开的项目准备统一技...
react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...