只有当用户点击返回时,我才能将滚动设置为top false



每当路线发生变化时,我都会使用滚动组件滚动到顶部:

Scroll.js
import { 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?

你不能检查你的历史动作吗?如果是POP,就忽略滚动吗?

类似的东西

function ScrollToTop({ history }) {

useEffect(() => {
const unlisten = history.listen(() => {
if (history.action !== 'POP') {
window.scrollTo(0, 0);
}
});
return () => {
unlisten();
}
}, []);
return (null);
}

最新更新