#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 . Большое вам спасибо за ваше время!