我按照这篇帖子在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', this.handleScroll);
},
这是我的渲染函数的一小段代码。
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>
);
}