老师,为什么用普通的闭包防抖函数作为useEffect的回调函数不起作用?

来源:3-4 学习自定义Hook - 用useDebounce减少工程搜索请求频率

慕粉3118661

2021-04-02

似乎每次触发Effect钩子都是重新创建了一个回调函数,所以每次timer都是新的,导致不会进入clearTimeout的判断,我的理解对吗? 老师的课程似乎并不涉及API的原理,看得有些吃力呢。

写回答

3回答

梓梁92

2021-11-15

看图说话

0
0

慕粉3118661

提问者

2021-04-04

//img.mukewang.com/szimg/60697cb90939b73211030599.jpg

为什么useDebounce中的useEffect可以监听到作为参数被传入的value和delay的变化呢?难道value和delay其实是引用对象吗?

0
1
梓梁92
![](https://meiliang-1258667848.cos.ap-shanghai.myqcloud.com/markdown/202111152345995.png)
2021-11-15
共1条回复

Nolan

2021-04-03

hi,clearTimeout 每次都会发生的,这样就可以让上次的setTimeout里的回调函数不发生

0
4
Nolan
回复
慕粉3118661
会影响,是参数,不是同名变量
2021-04-05
共4条回复

React17+Hook+TS4 优质实践,仿 Jira 企业级项目

解锁 React17 高阶用法,轻松应对大型复杂长周期项目

2691 学习 · 1236 问题

查看课程