Это определенно ожидаемое, хотя и своеобразное поведение.Ваша веб-страница загружается, вы устанавливаете позицию прокрутки, и когда вы программно изменяете то, что появляется на экране, ничто не говорит браузеру, что также нужно программно обновлять позицию прокрутки.
Когда я использую маршрутизатор, я обычно включаю <ScrollToTop>
компонент, который прослушивает изменения маршрута, как описано здесь: https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/docs/guides/scroll-restoration.md.
Похоже, вы не 'использование маршрутизатора, поэтому вам нужно привязать обновление программного прокрутки к некоторым изменениям состояния.Всякий раз, когда состояние изменяется таким образом, что будет отображаться новая страница информации, вам необходимо прокручивать обратно наверх.
Независимо от того, что, вот как вы собираетесь сбросить прокрутку:
window.scrollTo(0, 0)
И вы, вероятно, будете связывать это с функцией componentDidUpdate
или вызовом useEffect
с соответствующими частями состояния в качестве условий изменения (второй, аргумент массива).