javascript - 如何在 react 组件中添加滚动事件

标签 javascript reactjs ecmascript-6

我正在尝试在表格上添加一个 onScroll 事件。这是我试过的:

componentDidMount() {
    ReactDOM.findDOMNode(this.refs.table).addEventListener('scroll', this.listenScrollEvent);
}

componentWillUnmount() {
    ReactDOM.findDOMNode(this.refs.table).removeEventListener('scroll', this.listenScrollEvent);
}

listenScrollEvent() {
    console.log('Scroll event detected!');
}

render() {
    return (
        <table ref="table">
           [...]
        </table>
    )
}

我尝试了 console.log(ReactDOM.findDOMNode(this.refs.table)) 并且我得到了正确的结果,但是根本没有触发滚动事件。我看了here但还是失败了。非常感谢任何帮助。

最佳答案

您需要将 this 绑定(bind)到上下文中的元素。

render() {
    return (
        <table ref="table" onScroll={this.listenScrollEvent.bind(this)}>
           [...]
        </table>
    )
}

关于javascript - 如何在 react 组件中添加滚动事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39325581/

相关文章:

javascript - 使用 webpack 和 jspm 以及外部依赖

javascript - "Live"网页显示与 "offline"或 "local"版本不同

javascript - 你能用元素得到封面的 "state"吗

javascript - 如何延迟 WordPress 网站上 YouTube 视频的 JavaScript 解析?

javascript - 类型错误 : Cannot read property 'forEach' of undefined Javascript

javascript - 如何在javascript中应用嵌套排序

typescript - 如何在 Typescript 中输入 es6 对象/字典

javascript - 我如何更改 html 字符串?

css - 更改material-ui中Grid Item堆叠的顺序

reactjs - 在 React.js 中渲染 favicon 的替代方法