Как удалить положение прокрутки с помощью React-Router v6Javascript

Форум по Javascript
Ответить
Гость
 Как удалить положение прокрутки с помощью React-Router v6

Сообщение Гость »


У меня есть приложение реагирования, и я пытаюсь удалить предыдущую страницу scroll-position.

Пожалуйста, я был бы признателен, если бы вы поняли мою проблему, прежде чем закончить.

Я не хочу сохранять историю прокрутки. Я хочу, чтобы оно всегда возвращалось в начало страницы.

Я использовал приведенное ниже решение, чтобы приложение прокручивало страницу обратно к началу всякий раз, когда пользователь переходит на новую страницу.

import { useEffect } из «реагировать»; импортировать {useLocation} из 'реагировать-маршрутизатор-дом'; const ScrollToTop = ({дети }) => { const {путь} = useLocation(); useEffect(() => { окно.scrollTo(0, 0); }, [путь]); вернуть детей || нулевой; }; экспортировать ScrollToTop по умолчанию; Приведенный выше код работает отлично и без проблем. Что у меня не работает:

Когда пользователь нажимает Кнопку, которую я создал с помощью Ссылки из react- router-dom они переходят на новую страницу (правильную страницу), но позиция прокрутки соответствует предыдущей странице (страница они откуда).

Я пробовал использовать эти крючки.
[*]useLayoutEffect [*]withRouter (удален из React-Router v6) [*]useHistory (удален из React-Router v6 [*]useNavigate
Они не работают.

Как мне решить эту проблему? Или я что-то упускаю?

Я также попробовал реализовать решение, представленное ниже. Но это не сработает.
import { useEffect } из «реагировать»; импортировать {withRouter} из 'реагировать-маршрутизатор-дом'; функция ScrollToTop({история }) { useEffect(() => { const unlisten = History.listen(() => { окно.scrollTo(0, 0); }); возврат () => { не слушать(); } }, []); возврат (ноль); } экспортировать по умолчанию с помощью Router(ScrollToTop);
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»