javascript - 如何解决此警告:“React Hook useEffect 缺少依赖项:'history'”?
问题描述
当我在我的 React 应用程序中使用 ScrollToTop 组件时,我在浏览器中收到以下警告:
第 12:6 行:React Hook useEffect 缺少依赖项:'history'。要么包含它,要么移除依赖数组 react-hooks/exhaustive-deps
import { useEffect } from 'react';
import { withRouter } from 'react-router-dom';
function ScrollToTop({ history }) {
useEffect(() => {
const unlisten = history.listen(() => {
window.scrollTo(0, 0);
});
return () => {
unlisten();
}
}, []);
return (null);
}
export default withRouter(ScrollToTop);
我可以进行哪些更改来删除此警告?谢谢!
解决方案
您可以添加history
到useEffect()
块的依赖列表:
useEffect(() => {
const unlisten = history.listen(() => {
window.scrollTo(0, 0);
});
return () => {
unlisten();
}
}, [history]); // <- add history here
或者您可以导入history
而不是将其作为道具传递,然后避免将其包含在useEffect()
依赖项中。
推荐阅读
- javascript - 似乎无法弄清楚如何正确删除子节点
- swift - 检测关于容器视图的 UIView 中心位置 - Swift - 以编程方式
- python - Keras 自定义损失函数 huber
- logging - 如何在生产日志中查看 SQL 参数值?
- azure-cosmosdb - 这是 Azure Cosmos DB 中的错误分区键方案吗?
- excel - 从另一个工作簿运行 Excel VBA Workbook_BeforeClose(Cancel As Boolean)
- javascript - Javascript获取给定段的所有组合,这些组合完全适合给定大小
- javascript - 静态页面中的动态导航栏内容
- python-3.x - 如何设置计时器以停止通过 Raspberry Pi 上的 SocketServer 进行摄像头流式传输?
- c++ - CMake - 如何更改 .dll 文件所在的位置