3

我正在使用 React useEffect 来更新状态。Eslint 警告我正在犯无阴影错误。我认为这与某些 eslint 或 eslint 插件设置有关,因为 CRA 不会导致相同的错误。如何解决?

function Sample(props) {
  const { flag } = props;
  const [value, setValue] = useState();

  useEffect(() => {
    if (flag) {
      setValue(value => value + 1);
    }
  }, [flag]);
}

在这里,setValue(value => value + 1);由于在 useState 中声明,该值导致无阴影。

4

1 回答 1

2

eslint 正确地抱怨是因为你已经value在你的钩子中声明了一个变量useState,但是你重新声明了另一个value在你的useEffect钩子中调用的变量。

最简单的解决方法是不通过更改setValue调用中的变量来隐藏变量名称 -

useEffect(() => {
  if (flag) {
    setValue(prev => prev + 1);
  }
}, [flag]);
于 2020-01-30T00:21:30.227 回答