javascript - Next.js 链接不会在页面滚动到顶部时呈现
问题描述
我有一个像这样的组件:
const Milestone = props => {
const { path, disabled, index, ...rest } = props;
if (disabled) return <MilestoneCheck disabled />;
return (
<Link href={path} passHref>
<a>
<MilestoneCheck {...rest} />
</a>
</Link>
);
};
当我单击“链接”转到下一页然后单击后退按钮返回到我来自的位置时,页面不会在顶部加载,而是从最后滚动的位置加载。在路由更改上添加'scrollTop'方法会感觉不是很有效,是否有更优雅的解决方案可以始终将页面加载在顶部?
解决方案
最终在主 app.js 文件中执行此操作:
componentDidMount() {
Router.events.on('routeChangeComplete', () => {
window.scroll({
top: 0,
left: 0,
behavior: 'smooth'
});
});
}
推荐阅读
- android - 下载管理器更新应用程序,但失败
- c# - 如何保存对象变量供 ASP.NET 应用程序的所有用户使用,该变量被触发一次
- svg - SVG 使用 - 旋转后无法重新定位多边形
- amazon-web-services - Amazon SageMaker 分解机器评级矩阵和终端节点
- sql - 如何附加列,分组且不重复?
- r - 如何在 R 中引导混合效应模型
- google-analytics - 如何使用 Tealium/GA 衡量使用 URL 片段的单页网站?
- php - 我的代码中的什么导致了以下错误:PHP 致命错误:未捕获的错误:在 null 上调用成员函数 begin()?
- python-3.x - Python 3.6+ 可以是字符串或任何类的参数注释
- service-worker - Workbox 不能在 localhost 上工作,但它可以在 127.0.0.1 上工作