每当路线发生变化时,我都会使用 Scroll 组件滚动到顶部:Scroll.jsimport { useEffect } from 'react';import { withRouter } from 'react-router-dom';function ScrollToTop({ history }) { useEffect(() => { const unlisten = history.listen(() => { window.scrollTo(0, 0); }); return () => { unlisten(); } }, []); return (null);}export default withRouter(ScrollToTop);<Router> <Fragment> <ScrollToTop /> <Switch> <Route path="/" exact component={Home} /> </Switch> </Fragment></Router>我想要实现的是,每当用户在浏览器上单击返回时,滚动到顶部应该不起作用。每当用户在浏览器中单击返回时,如何将滚动到顶部设置为 false?
1 回答

慕容708150
TA贡献1831条经验 获得超4个赞
你不能检查你的历史动作,如果它是 POP,就忽略滚动?
就像是
function ScrollToTop({ history }) {
useEffect(() => {
const unlisten = history.listen(() => {
if (history.action !== 'POP') {
window.scrollTo(0, 0);
}
});
return () => {
unlisten();
}
}, []);
return (null);
}
添加回答
举报
0/150
提交
取消