【发布时间】: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。它一定是别的东西。