React-слушайте прокрутку вверх / вниз?
Я создаю приложение (ES6), и мне любопытно, каков "правильный" способ поймать события прокрутки вверх / вниз?
Я попытался (npm) установить react-scroll-listener, но я не мог заставить его работать с моим классом ES6.
в основном я хочу: если прокрутите вверх, сделайте это; если прокрутите вниз, сделайте что-то еще.
import React from 'react';
import config from '../config';
import StaticImageList from '../Common/StaticImageList';
import ScrollListener from 'react-scroll-listener';
class Album extends React.Component {
constructor(props){
super(props);
}
myScrollStartHandler(){
console.log('Scroll start');
}
myScrollEndHandler(){
console.log('Scroll end 300ms(default)');
}
componentDidMount(){
scrollListener.addScrollHandler('body', myScrollStartHandler, myScrollEndHandler );
}
render(){
return <StaticImageList />;
}
};
export default Album;
1 ответов
это общий совет для подключения к любым слушателям:
прикрепить материал в componentDidMount
, unattach в componentWillUnmount
class Whatever extends Component {
componentDidMount() {
window.addEventListener('scroll', this.handleScroll, { passive: true })
}
componentWillUnmount() {
window.removeEventListener('scroll', this.handleScroll)
}
handleScroll(event) {
// do something like call `this.setState`
// access window.scrollY etc
}
}