How to add scroll event in react component
You can use onScroll
attribute:
listenScrollEvent() {
console.log('Scroll event detected!');
}
render() {
return (
<table onScroll={this.listenScrollEvent}>
[...]
</table>
)
}
Here is an example: https://jsfiddle.net/81Lujabv/
according to React documents(https://reactjs.org/docs/handling-events.html),
React events are named using camelCase, rather than lowercase. You can set attributes as you do with pure HTML.
HTML:
<div onclick="..." onscroll="...">
...
</div>
JSX:
<div onClick={...} onScroll={...}>
...
</div>
you should create a wrapper block element which has fixed height to enable scroll.
I was looking to do something similar. Adding the event listener to the window instead of the ReactDom.findDOMNode worked for me...
componentDidMount() {
window.addEventListener('scroll', this.handleScrollToElement);
}
componentWillUnmount() {
window.removeEventListener('scroll', this.handleScrollToElement);
}
handleScrollToElement(event) {
console.log('Fired ' + event)
}
You need to bind this to the element in context.
render() {
return (
<table ref="table" onScroll={this.listenScrollEvent.bind(this)}>
[...]
</table>
)
}