【发布时间】:2021-07-08 13:06:36
【问题描述】:
我想在更改路线后滚动到页面顶部。但是,当用户在浏览器中按下“返回”按钮时,我希望他们返回到上一页的上一个滚动位置,而不是返回到顶部。我已经实现了 n“滚动到顶部”功能并且它有效 (Link)。但是,我想知道在“返回”时如何修改它以记住以前的滚动位置。
滚动到顶部:
import React, { useEffect, Fragment } from "react";
import { withRouter } from "react-router-dom";
function ScrollToTop({ history, children }) {
useEffect(() => {
const unlisten = history.listen(() => {
window.scrollTo(0, 0);
});
return () => {
unlisten();
};
}, []);
return <Fragment>{children}</Fragment>;
}
export default withRouter(ScrollToTop);
App.js
<ScrollToTop>
<Switch>
<PublicRoute exact path="/join/" component={LandingPage} />
</Switch>
</ScrollToTop>
【问题讨论】:
标签: javascript reactjs react-router