Почему прокрутка страницы до верха не работает в react?

#javascript #reactjs #scrolltop

#javascript #reactjs #scrolltop

Вопрос:

Я перепробовал все, что нашел в сообществе StackOverflow и Github, но я все еще не могу найти способ прокрутить страницу до верха при ее рендеринге. В моем последнем effor я добавил компонент scrollTop

 import { useEffect } from "react";
import { withRouter } from "react-router-dom";

const ScrollToTop = ({ children, location: { pathname } }) => {
  useEffect(() => {
    window.scrollTo({
      top: 0,
      left: 0,
      behavior: "smooth",
    });
  }, [pathname]);

  return children || null;
};

export default withRouter(ScrollToTop);
 

и я добавил его в index.js файл

 import ScrollToTop from "./components/ScrollTop";

ReactDOM.render(
  <BrowserRouter>
    <ScrollToTop>
      <App />
    </ScrollToTop>
  </BrowserRouter>,

  document.getElementById("root")
);
 

Кто-нибудь может объяснить мне, почему это не работает?

Я также попробовал useEffect в каждом компоненте, который я хочу отобразить с помощью window.scrollTo(0,0), но это не сработало.

Комментарии:

1. В каком событии вы хотите, чтобы оно прокручивалось? Ваш код должен прокручиваться при pathname изменениях. Добавьте console.log(pathname); выше useEffect , чтобы проверить, обновляется ли он.

2. @kca я понял проблему. Это была проблема с панелью навигации react.mdl. Есть решение, которое я нашел github.com/tleunen/react-mdl/issues/262 . Большое вам спасибо за ваше время!