我正在尝试清理 DOM 中的警告,并且对于每个useEffect
部门在哪里[]
我收到一条错误消息,指出 useEffect 缺少依赖项。我想在安装组件时触发效果,我的印象是这就是做到这一点的方法。如果是这样,为什么会出现警告?
这是我使用的简单代码
useEffect(() => {
setDispContext("NEW");
}, []);
警告是React warning React Hook useEffect has a missing dependency: 'setDispContext'. Either include it or remove the dependency array react-hooks/exhaustive-deps
您在 useEffect 中使用的所有内容都必须位于依赖项数组内,因此正确的方法是:
useEffect(() => {
setDispContext("NEW");
}, [setDispContext]);
但有时您只需要 useEffect 运行一次。如果 setDispContext 不会改变,它可以放在 useCallback 中。否则唯一的办法就是使用:
useEffect(() => {
setDispContext("NEW");
}, []);// eslint-disable-line
所以 eslint 警告不会显示。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)