我正在开发一个应用程序(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;
this.handleScroll = this.handleScroll.bind(this)
,会更好。没有它,人们将无法调用this.setState,因为this
将引用窗口或其他元素,而不是当前组件类。@bierhier这可能是为什么它对你不起作用的原因。 - wviana