Почему не обновляется defaultValue при вызове setScroll?
Пытаюсь реализовать посекционный скролл на сайте. Есть state, который назвал scroll:
const [scroll, setScroll] = useState({ currentSectionIndex: 0 });
useEffect(() => {
window.addEventListener("scroll", handleScroll);
return () => window.removeEventListener("scroll", handleScroll);
Обновить состояние пытаюсь в handleScroll:
const handleScroll = () => {
let currentScrollPosition = window.scrollY
//window.scrollTo(0, yPositions[scroll])
setScroll({ ...scroll, currentSectionIndex: scroll.currentSectionIndex + 1 })
let windowScrolls = window.scrollY;
console.log(scroll)
};
Но в currentSectionIndex
при скролле выводится значение по умолчанию 0
. Почему? setScroll
же должен обновлять состояние в функциональном компоненте. Что делаю не так?
Источник: Stack Overflow на русском