我在 React 中遇到了一个奇怪而烦人的问题 - React 在重新渲染时自动滚动页面。
CodeSandbox 上的演示应用程序 - https://codesandbox.io/s/react-scroll-bug-demo-y7u50j?file=/src/App.js
重现步骤:
问题 - 当满足这些条件时,React 会自动滚动页面:
因此,当屏幕上看不到项目列表时 - 不存在自动滚动问题。 另外,当列表顶部低于屏幕顶部时 - 也不会发生自动滚动。
我创建了一个Vanilla JavaScript应用程序来测试它是否是Chrome特定行为 - 没有错误,一切都很好 - 使用Vanilla JS,当项目列表在屏幕上重新渲染时不会发生滚动。 它只会发生在 React 应用程序中,并且非常烦人。 正如您从我的 CodeSandbox 演示中看到的:
任何地方都没有滚动调用,但它仍然发生。
- 重新渲染列表时不会发生滚动。 知道如何防止这种自动滚动吗?