我正在尝试清除 DOM 中的警告,对于每个 useEffect
的 deps 是 []
,我收到一条错误消息,指出 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
答案 0 :(得分:1)
你在 unside useEffect 中使用的所有东西都必须在依赖数组中,所以正确的方法是:
useEffect(() => {
setDispContext("NEW");
}, [setDispContext]);
但有时你只需要 useEffect 运行一次。如果 setDispContext 不会改变,它可以放在 useCallback 中。否则唯一的办法就是使用:
useEffect(() => {
setDispContext("NEW");
}, []);// eslint-disable-line
所以 eslint 警告不会显示。
答案 1 :(得分:0)
试试:
useEffect(() => {
setDispContext("NEW");
// eslint-disable-line
}, []);