Мои настройки аналогичны следующим
<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>
открывает новый путь к истории и браузеру. рассматривает это как новую страницу. Итак, есть ли обходной путь или стандартное решение для преодоления этой проблемы?