javascript - react 。 Mousewheel.deltaY 对 if 语句使用react,但不进行切换

标签 javascript reactjs switch-statement

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 将始终为 truefalsee 是一个事件对象,永远不会是truefalse。你可以做这样的事情......

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

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

关于javascript - react 。 Mousewheel.deltaY 对 if 语句使用react,但不进行切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42632042/

相关文章:

javascript - express.js中的next(err)处理程序消息

javascript - 传递更多值来订阅 observables 的函数

objective-c - 评估 if...else if... block 上的每个条件语句

xcode - Swift:来自 switch 语句的未解析标识符

C#在switch语句中执行所有case

javascript - 滚动动画流畅

javascript - QuillJS : Cannot register a custom class attributor

javascript - 如何将 react window.onError 错误记录到文件中

javascript - 如何使用 React Router 嵌套一些路由?我想保留一个 header 组件

javascript - 在 javascript 中使用特定键反转对象数组时出现问题(React)