【发布时间】:2021-09-03 17:52:47
【问题描述】:
useEffect(() => {
const apiCall = async () => {
try {
let newSearchFormOptions = { ...searchFormOptions };
...
setSearchFormOptions(newSearchFormOptions);
} catch (e) {
setPageState({ error: e.error });
} finally {
setPageState({ isLoading: false });
}
};
apiCall();
}, []);
在我将 eslint 添加到项目之前,上面的代码没有 eslint 问题。在项目中添加 eslint 规则后,它显示“React Hook useEffect 缺少依赖项:'searchFormOptions'。”但是,searchFormOptions 是状态,setSearchFormOptions 将更新它,这使得“apiCall”被一次又一次地调用。我知道我们可以使用 eslint 来禁用此警告,但我担心的是 eslint 规则是否过于敏感,而我计划仅在安装组件时触发一次“apiCall”。我们是否需要依赖 eslint 规则,或者我们需要自己仔细检查,然后使用 eslint 禁用此警告,或者我们是否有任何其他解决方法?
提前致谢。
【问题讨论】:
标签: react-hooks eslint use-effect