我写了下面的代码来根据参数改变要设置的值。但是,我得到了下面的错误,不知道如何修复它。
错误
React Hook useCallback has missing dependencies: 'navigate' and 'params.id'. Either include them or remove the dependency array react-hooks/exhaustive-deps
Contents.tsx
useEffect(() => {
getContents().then(contents => {
if (params.id) {
contents.forEach(content => {
// setState
});
} else {
contents.forEach((content, index) => {
// setState
});
}
}).catch(error => {
alert("error");
});
}, []);
2条答案
按热度按时间2ekbmq321#
只需在useEffect结束数组中传递这些依赖项。
yqlxgs2m2#
您看到的错误是因为
useCallback
钩子期望函数内部使用的所有依赖项都列在dependency数组中,该数组作为第二个参数传递给useCallback
钩子。由于您在
useCallback
钩子内使用params.id
和navigate
,但没有将它们列在dependency数组中,因此您会收到错误消息。要解决此问题,您需要将
navigate
和params.id
添加到useCallback中的依赖项数组。假设
navigate
和params.id
来自props或context,您可以将它们添加到dependency数组中,如下所示: