采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
似乎每次触发Effect钩子都是重新创建了一个回调函数,所以每次timer都是新的,导致不会进入clearTimeout的判断,我的理解对吗? 老师的课程似乎并不涉及API的原理,看得有些吃力呢。
看图说话
为什么useDebounce中的useEffect可以监听到作为参数被传入的value和delay的变化呢?难道value和delay其实是引用对象吗?
![](https://meiliang-1258667848.cos.ap-shanghai.myqcloud.com/markdown/202111152345995.png)
hi,clearTimeout 每次都会发生的,这样就可以让上次的setTimeout里的回调函数不发生
老师,为什么useDebounce中的useEffect可以监听到作为参数被传入的value和delay的变化呢?难道value和delay其实是引用对象吗?
这个他们是不是引用对象没关系啊。。。useEffect第二个参数本来就是做这件事的,监听变量变化
但是我认为value和delay这两个变量的值在作为参数传入useDebounce函数之后应该就属于函数作用域中的变量,函数外的同名变量再怎么变也影响不到函数里面的值了吧?
登录后可查看更多问答,登录/注册
解锁 React17 高阶用法,轻松应对大型复杂长周期项目
2.8k 2
3.1k 7
1.9k 2
1.7k 2
1.8k 1