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 > 0e的结果进行比较,这将永远不匹配。 e.deltaY > 0将始终为truefalsee是事件对象,永远不会是truefalse。您可以改为执行类似的操作...

switch (e.deltaY > 0) {
  case true:
    console.log('positive');
    break;
  default:
    console.log('negative');
}


我建议您使用简单的if语句,因为您的唯一情况是truefalse

09-30 22:40