我目前正在尝试在页面刷新时滚动到顶部。到目前为止,我已经能够实现在路由更改时滚动到顶部,但是在页面刷新时React总是恢复其先前的位置。如何防止发生这种情况?
以下是我实现滚动到顶部的方法(认为在componenDidMount()
中使用window.scrollTo(0, 0)
会有帮助,但实际上并没有):
class ScrollToTop extends Component {
componentDidMount() {
window.scrollTo(0, 0);
}
componentDidUpdate(prevProps, prevState, snapshot) {
if (this.props.location.pathname !== prevProps.location.pathname) {
window.scrollTo(0, 0);
}
}
render() {
return null;
}
}
export default withRouter(ScrollToTop);
class App extends Component {
render() {
return (
<BrowserRouter>
<ScrollToTop/>
<Header/>
<Home/>
<Projects/>
<div className="follow-cursor"/>
</BrowserRouter>
);
}
}
export default App;