Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 只有当用户单击“上一步”时,我如何才能将scroll设置为top false?_Javascript_Reactjs_Scroll_React Router_React Router Dom - Fatal编程技术网

Javascript 只有当用户单击“上一步”时,我如何才能将scroll设置为top false?

Javascript 只有当用户单击“上一步”时,我如何才能将scroll设置为top false?,javascript,reactjs,scroll,react-router,react-router-dom,Javascript,Reactjs,Scroll,React Router,React Router Dom,每当路线改变时,我使用滚动组件滚动到顶部: Scroll.js import { useEffect } from 'react'; import { withRouter } from 'react-router-dom'; function ScrollToTop({ history }) { useEffect(() => { const unlisten = history.listen(() => { window.scrollTo(0, 0);

每当路线改变时,我使用滚动组件滚动到顶部:

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);

我想实现的是,每当用户在浏览器上单击“上一步”时,滚动到顶部应该不起作用


当用户在浏览器中单击“返回”时,如何将“滚动到顶部”设置为false?

您不能检查您的历史记录操作吗?如果它是弹出的,请忽略滚动

差不多

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

  return (null);
}

@Jayr你能用一个例子解释一下吗?对不起,删除了旧评论,也许这就是你可以使用的
function ScrollToTop({ history }) {
  
  useEffect(() => {
    const unlisten = history.listen(() => {
      if (history.action !== 'POP') {
          window.scrollTo(0, 0);
      }
    });
    return () => {
      unlisten();
    }
  }, []);

  return (null);
}