React, почему внутри функции при проверке состояния всегда показывает изначальное состояние (не обновляется)?
Внутри функции при проверке состояния всегда показывает изначальное состояние (не обновляется)
const [currentPage, setCurrentPage] = useState(1)
const [pages, setPages] = useState(0)
const [fetching, setFetching] = useState(true)
useEffect(()=>{
if(fetching){
fetch(`https://someserver/pages=${currentPage}`)
.then(res => res.json())
.then(json => {
setPages(json.totalPages)
setFilms([...data, ...json.data])
setCurrentPage(prevState => prevState + 1)
})
.catch(err => console.log(err))
.finally(()=> setFetching(false))
}
}, [fetching])
useEffect(() =>{
document.addEventListener('scroll', scrollHandler)
return function (){
document.removeEventListener('scroll', scrollHandler)
}
}, [])
const scrollHandler = (e) => {
if((e.target.documentElement.scrollHeight - (e.target.documentElement.scrollTop + window.innerHeight) < 100) &&
(currentPage != pages)){
setFetching(true)
\\Здесь выводит всегда изначальное состояние
console.log(pages) // 0
console.log(currentPage) // 1
}
}
\\А здесь все нормально, как и должно быть
console.log(pages) // 16
console.log(currentPage) // 2