【发布时间】:2023-02-25 14:09:42
【问题描述】:
我正在用 Next.js 做我的第一个项目,我遇到了一个奇怪的行为。我的意思是网页会自动滚动到顶部。此问题仅发生在移动设备上。我有点困惑。以前我有这样的事情:
父组件:
const someRef = useRef<HTMLElement>(null);
return (
<ChildComponent ref={someRef} />
)
子组件:
const ChildComponent = React.forwardRef((_:unknown, ref: React.LegacyRef<HTMLElement>) => {
return (
<div ref={ref} id='someRef'>
// ...
</div>
)
}
)
目前,我已经删除了所有 refs 并用 React.FC 替换了 forwardRefs,代码如下所示:
父组件:
return (
<ChildComponent />
)
子组件:
const ChildComponent = () => {
return (
<div id='someRef'>
// ...
</div>
)
}
在台式机上一切正常,但正如我所提到的 - 这个问题只发生在手机上。
编辑: 这是 Link 元素的样子:
<Link href={`/page1/#about`}>about</Link>
【问题讨论】:
-
你在页面上向下滚动,什么都不做,它正在滚动到顶部?我认为这与 nextJS 无关,它仅在导航后自动滚动,据我所知nextjs.org/docs/api-reference/next/link。
-
确切地说,它甚至发生在使用任何链接之前。我在想这可能是由使用 refs/forwardRef 引起的,但删除 refs 没有帮助。更重要的是 - 它是随机发生的。
标签: reactjs typescript next.js