【问题标题】:Not able to _.debounce and change the state in react.js无法 _.debounce 并更改 react.js 中的状态
【发布时间】:2019-09-05 10:31:15
【问题描述】:

我正在尝试使用 lodash 的 debounce 方法来切换位于滚动发生后 500 毫秒状态的布尔值。

我一直在寻找关于 SO 的回复,但这些都没有帮助我解决这个问题。这似乎相当简单,所以可能有些东西我没有得到。

状态是:

constructor(props) {
    super(props);
    this.state = {
       isScrolling: false
    }
 }

componentDidMount 部分是:

   componentDidMount(){
    window.addEventListener('scroll', this.handleScroll, true);
    window.addEventListener('scroll', _.debounce(() => {
      this.setState({
        isScrolling: false
      })
    }, 500))
 }

滚动功能是:

    handleScroll = (event) => {
      this.setState({
        isScrolling: true
      })
    };

在我的 rect chrome 开发中。工具,我看到isScrolling 在我开始滚动时切换为true,但debounce 方法不会再次将back 切换为false。我做错了什么?

【问题讨论】:

  • 你的代码是正确的,我把它复制到了codepen。它一定是别的东西。

标签: node.js reactjs lodash


【解决方案1】:

编辑 - 我的代码是正确的,但是这段 css 代码阻止了正确的行为发生:

html, body {
  height:100%;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    • 2016-04-02
    • 2018-02-19
    • 2021-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多