Reactjs 功能更新导致eslint无阴影错误
我正在使用React-useEffect更新状态。Eslint警告说我没有出现阴影错误。我认为这与一些eslint或eslint插件设置有关,因为CRA不会导致相同的错误。如何修复它Reactjs 功能更新导致eslint无阴影错误,reactjs,eslint,eslint-plugin-react-hooks,Reactjs,Eslint,Eslint Plugin React Hooks,我正在使用React-useEffect更新状态。Eslint警告说我没有出现阴影错误。我认为这与一些eslint或eslint插件设置有关,因为CRA不会导致相同的错误。如何修复它 function Sample(props) { const { flag } = props; const [value, setValue] = useState(); useEffect(() => { if (flag) { setValue(value =>
function Sample(props) {
const { flag } = props;
const [value, setValue] = useState();
useEffect(() => {
if (flag) {
setValue(value => value + 1);
}
}, [flag]);
}
这里,
setValue(value=>value+1)代码>该值由于在useState中声明而不会产生阴影。eslint正确地抱怨,因为您在useState
钩子中声明了一个value
变量,但在Useffect
钩子中声明了另一个名为value
的变量
最简单的修复方法是不通过更改setValue
调用中的变量来隐藏变量名-
useEffect(() => {
if (flag) {
setValue(prev => prev + 1);
}
}, [flag]);
谢谢我还发现,从eslint的扩展中删除“airbnb”选项可以解决这个问题。@SungwooPark-是的,这可能也会起作用,但您正在削弱linter-它给您的警告是有效的,值得更改代码,否则可能会导致意外错误!