Как восстановить прокрутку при перемещении между клиентскими маршрутами? - PullRequest
0 голосов
/ 08 октября 2019

Мои настройки аналогичны следующим

<BrowserRouter>
    <NavBar />
    <Switch>
        <Route exact path='/' render={Home} />
        <Route path='/blog' render={Blog} />
        <Route path='/about' render={About} />
    </Switch>
</BrowserRouter>

В NavBar я установил ссылки на все эти маршруты, используя <NavLink>.

Я прекрасно могу перемещаться междумаршруты, но положение прокрутки не восстанавливается.

Согласно документации по реагирующему маршрутизатору, браузер должен восстанавливать положение прокрутки. Но это работает только тогда, когда навигация выполняется с использованием browser back button или history.goBack(). Тем не менее, он не идеален для текущего сценария, так как навигационные ссылки всегда видны, и нецелесообразно перемещаться между различными маршрутами, используя back.

Я считаю, что <Link> открывает новый путь к истории и браузеру. рассматривает это как новую страницу. Итак, есть ли обходной путь или стандартное решение для преодоления этой проблемы?

1 Ответ

0 голосов
/ 08 октября 2019

Это не проблема как таковая, поскольку с точки зрения UX не ожидается восстановление позиции прокрутки при нажатии на ссылку, только при использовании кнопки «Назад».

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...