You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

react-hooks/exhaustive-deps校验useCallback出现不一致告警的原因是什么

原因分析

react-hooks/exhaustive-deps 是基于静态代码分析实现的 lint 规则,两个告警都有明确的触发前置条件,你提到的第14行写法刚好没有命中触发条件:

  • 「存在不必要的依赖项」告警只会在你给useCallback传当前作用域内定义的内联函数时触发。只有这种情况,lint 才会扫描函数内部代码,对比依赖数组里的变量有没有被实际用到。如果第一个参数是上层作用域定义的变量(比如这里的noop),lint 不会递归回溯这个变量的实际实现逻辑,自然没法判断c是否被使用,所以不会触发该告警。
  • 「接收到依赖项未知的函数,请传入内联函数」告警只会在 lint 判定你传入的非内联函数存在不稳定外部依赖时触发。而noop是通用的无依赖空函数(通常定义为顶层作用域的常量const noop = () => {},内部没有引用任何外部变量),lint 规则内置了对这类无依赖稳定函数的识别,所以不会触发该告警。

另外对于完全无依赖的稳定函数来说,useCallback的包装本身实际意义不大,lint 对这类场景的校验逻辑也会相对宽松,即便依赖数组存在多余项也不会抛出告警。

内容的提问来源于stack exchange,提问作者customcommander

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 10:06:01