2

所以我有以下效果

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

disabled如果prop 发生变化,这只是将按钮设置为启用或禁用状态。

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

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

现在我收到一个警告,setAnimatedValue需要useEffect与 prop 一起添加到我的数组中disabled,但它只是一个既不是状态也不是 prop 的函数,所以据我所知,它不应该真正进入那里。

有没有办法让这条规则只在我遗漏stateprop有价值时才发出警告?

4

1 回答 1

0

如果您的setAnimation函数不依赖于外部状态或道具,那么省略是安全的。

IE。如果唯一setAnimation需要执行其效果的是传递给它的 0/1 值 - 那么它可以安全地省略。

它可能是一个 setter 函数,所以你很安全。

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

于 2019-09-08T15:10:51.847 回答