为了账号安全,请及时绑定邮箱和手机立即绑定

仅当用户单击返回时,如何将滚动设置为 false?

仅当用户单击返回时,如何将滚动设置为 false?

拉丁的传说 2023-03-03 10:39:32
每当路线发生变化时,我都会使用 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);

}


查看完整回答
反对 回复 2023-03-03
  • 1 回答
  • 0 关注
  • 39 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信