反应。用于实现setState方法的Debouncing函数

时间:2017-08-07 11:03:47

标签: reactjs higher-order-components debounce

我正在开发一个将视口尺寸传递给其子节点的简单组件。在窗口调整大小时,我启动handleResize方法将新窗口尺寸传递给子组件。我想使用来自lodash的debounce func来最小化调用handleResize方法的次数(ref)。

###
Hi 
I am Jack
I live in London
####
I am James
I live in Germany
####

它按预期工作但我不断收到警告: enter image description here

有谁知道发生了什么事?

请让我知道

1 个答案:

答案 0 :(得分:2)

请记住,您没有删除该活动。 if (window) window.addEventListener('resize', debounce(this.handleResize, 400))将改变函数并返回一个包装函数,删除事件只会传递原始的this.handleResize,这将无法找到。

你需要在构造函数中this.handleResize = debounce(this.handleResize, 400)

tl; dr:组件将卸载,但事件将继续触发。