У меня на странице есть компонент, который прокручивается, а остальные нет. Я хочу прокрутить до определенного местоположения Y в этом элементе, когда я изменяю значение useState, используя другой компонент.
const scrollMe = useRef();
useEffect(
() => {
if (scrollMe === true) {
scrollPanel.scrollTo(0, 300)
}
},
[ scrollMe ]
);
Прокручиваемый компонент выглядит так:
<div ref={scrollMe} onScroll={(e) => handleScroll(e)}>A mapped array</div>
Функция прокрутки выглядит следующим образом:
const handleScroll = (e) => {
if (e.target.scrollTop !== 0) {
setTopBarPosition(true);
} else {
setTopBarPosition(false);
}
};
Настройка topBarPosition влияет на
<div className={`topBar ${topBarPosition === true ? 'topBarToTop' : ''}`}>
<TopBar/>
</div>
А класс topBarToTop css перемещает topBar в верхнюю часть страницы:
.topBarToTop {
top: 30px;
}
Почему я просто получаю scrollMe.scrollTo не является функцией?
Я сделал кодовую коробку, которая иллюстрирует то, что я пытаюсь сделать:
https://codesandbox.io/s/react-hooks-counter-demo-izho9