React 组件监听滚轮滚动:
componentDidMount() {
this.refs.holder.addEventListener('mousewheel', this.handleScroll);
}
并对其使用react:
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
关于javascript - react 。 Mousewheel.deltaY 对 if 语句使用react,但不进行切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42632042/