reactjs - 将函数应用于每个 React 组件
问题描述
我需要componentDidMount()
在每个反应组件中添加以下内容。
要添加的代码:
window.scrollTo(0, 0);
如果不将其写入每个组件,我怎么能做到这一点?
解决方案
如果你使用 react-router,你可以创建一个 ScrollToTop 组件:
import { useEffect } from "react";
import { withRouter } from "react-router-dom";
const ScrollToTop = ({ children, location: { pathname } }) => {
useEffect(() => {
window.scrollTo({
top: 0,
left: 0,
behavior: "smooth"
});
}, [pathname]);
return children || null;
};
export default withRouter(ScrollToTop);
并将您的应用程序包装在其中:
<Router>
<ScrollToTop>
<App />
</ScrollToTop>
</Router>
推荐阅读
- typo3 - 当您的菜单是静态的时,是否可以在 TYPO3 中创建多语言站点?
- symfony - 如何通过多次提交测试表单
- android - 原因:java.lang.ClassNotFoundException:在路径上找不到类“com.example.aol.Application”:DexPathList 错误颤动
- android -
对于 WhatsApp 音频共享 - r - 表示 r 中具有不同线型的 SEM 的重要和非重要路径
- typescript - 打字稿允许在具有推断类型的变量上添加属性并在类型显式时抱怨
- python - Pytorch model.load 调用歧义
- python - 无法在我的 Python Flask 应用程序中使用 zomatopy
- slurm - sacct 报告同一作业的不同结果
- reactjs - 单击时如何仅扩展一个列表项-反应钩子