javascript - 仅当用户单击返回时,如何将滚动设置为顶部 false?
问题描述
每当路线更改时,我都会使用 Scroll 组件滚动到顶部:
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);
}
推荐阅读
- javascript - 是否可以用链接上下文菜单替换 html 上下文菜单?
- node.js - 在 Firebase 函数中按原样接受 GZIP 编码的请求正文
- laravel - 颤振可见性错误和initState问题
- python - 字典值作为带参数的函数
- swift - 如何使用 NavigationView 将我的 ContentView 链接到另一个视图
- nas - 直接在 DSM 中执行命令?
- mysql - 我正在用 MYSQL 编写一个触发器,我想得到星期几
- html - 位置:固定不工作的html。怎么修?
- powershell - 启动 powershell 不会接受变量作为参数
- django - 如何计算Django模型中某些字段的平均值并将其发送到rest API?