Как сохранить положение прокрутки, предоставленное браузером, при использовании прокрутки вверх с маршрутизатором?
Я хочу сохранить позицию прокрутки на предыдущей странице, когда пользователь возвращается с помощью навигации в браузере и прокручивает вверх при переходе по ссылке.
Я использую компонент ScrollToTop, как предложено в этом ответе о прокрутке наверх в досягаемости маршрутизатора.
// ScrollToTop.js
import React from 'react'
export const ScrollToTop = ({ children, location }) => {
React.useEffect(() => window.scrollTo(0, 0), [location.pathname])
return children
}
Компонент работает должным образом: он прокручивается вверх, когда я загружаю другую страницу, но сейчас современные браузеры могут сохранять предыдущую позицию прокрутки страниц в истории. Поэтому, если я нажму кнопку "Назад" в браузере, я вернусь на предыдущую страницу в позиции прокрутки, которую я остановил.
Однако при использовании ScrollToTop
, Он прокручивается вверх, даже когда я возвращаюсь назад, используя кнопку "Назад".
Как я могу настроить его, чтобы прокручивать вверх только при переходе по ссылке, и в противном случае сохранить предыдущую позицию прокрутки?