【发布时间】:2021-04-30 07:33:14
【问题描述】:
我通过从next/router 导入useRouter 来使用路由器。
我正在尝试找到一个解决方案,当我更改 URL 的查询时,它不会滚动到页面顶部。有什么解决办法吗?我知道 Next 中的 Link 组件具有该选项,但我需要使用 Router 组件。我的下一个版本是 10.0.5。
const router = useRouter();
const changeCurrency = (newCurrency) => {
//Do some stuff here
Router.push({
pathname: router.pathname,
query: { ...router.query, currency: newCurrency.value },
});
};
【问题讨论】:
-
我能想到的一件事是监听 routeChangeStart 事件并在那里保留窗口位置,然后在 routeChangeComplete 触发时滚动到它。 nextjs.org/docs/api-reference/next/router#routerevents
-
@Gh05d 是的,我正在考虑这个问题,但不确定如何保留窗口位置。
-
您可以将其保存到 routeChangeStart 事件触发时的状态。
标签: javascript reactjs routes next.js next-router