React组件侦听滚轮滚动:
componentDidMount() {
this.refs.holder.addEventListener('mousewheel', this.handleScroll);
}
并对此做出反应:
handleScroll(e) {
switch (e) {
case e.deltaY > 0:
console.log('positive');
default:
console.log('negative');
}
if (e.deltaY > 0) {
console.log('positive');
} else {
console.log('negative');
}
}
它可以与if / else语句一起正常工作,但不适用于switch,请您解释一下原因?
最佳答案
这与React无关。 Switch语句不能那样工作。您正在将e.deltaY > 0
和e
的结果进行比较,这将永远不匹配。 e.deltaY > 0
将始终为true
或false
。 e
是事件对象,永远不会是true
或false
。您可以改为执行类似的操作...
switch (e.deltaY > 0) {
case true:
console.log('positive');
break;
default:
console.log('negative');
}
我建议您使用简单的
if
语句,因为您的唯一情况是true
和false