React钩子详尽-deps规则也需要useEffect数组中的函数

时间:2019-05-12 05:41:59

标签: reactjs react-hooks use-effect

所以我有以下效果

  useEffect(() => {
    if (disabled) {
      setAnimatedValue(0);
    } else {
      setAnimatedValue(1);
    }
  }, [disabled]);

如果disabled属性发生更改,只需将按钮设置为启用或禁用状态即可。

我还在我的eslint配置中添加了以下规则

  'react-hooks/exhaustive-deps': 'warn',

现在,我收到警告,setAnimatedValue必须与useEffect道具一起添加到我的disabled数组中,但这只是一个既不是状态也不是道具的函数,因此据我所知,它不应该真正进入那里。

是否有一种方法可以使此规则仅在我缺少stateprop值时才发出警告?

1 个答案:

答案 0 :(得分:0)

如果您的setAnimation函数不依赖外部状态或道具,则可以忽略。

即。如果setAnimation唯一需要执行的操作就是传递给它的0/1值-那么可以忽略它。

它很可能具有二传手功能,所以很安全。

https://reactjs.org/docs/hooks-faq.html#is-it-safe-to-omit-functions-from-the-list-of-dependencies