关于 useClickOutside 中 handler 作为 useEffect dependence

来源:9-10 妙用 useRef - 实现 clickOutSide 功能-

慕的地3235831

2022-01-03

老师 您好
我发现在 useClickOutside 这个自定义hook中,我们把 handler 函数 放在了 useEffect 的 dependence list 中。
因为 handler 是一个函数类型(reference type), 如果直接放入 dependence list 会不会引起 infinity loop(每次组件re-render 会 create new function reference)?
需不需要给handler包裹一层useCallback ?

写回答

1回答

张轩

2022-01-04

同学你好

非常感谢你的发现 这里最好的做法确实你是按你说的可以再包一层 这样做是比较完美的 当然 handler 其实也很少变化,如果将它从依赖数组中去掉也是可以的

0
1
慕的地3235831
谢谢老师
2022-01-04
共1条回复

React18+TS高仿AntD从零到一打造组件库

设计,开发,测试,发布再到 CI/CD,从0到1造轮子

2124 学习 · 959 问题

查看课程