Этот вопрос закрыт для ответов, так как повторяет вопрос Почему значения хуков не переприсваиваются?
svisch
@svisch

Почему после асинхронного запроса состояние не меняется в этом же useEffect?

Здравствуйте. Есть хук useEffect(), в котором делаю асинхронный запрос и по ответу устанавливаю в некоторое состояние значение ответа этого запроса.
useEffect(() => {
        axios.get(`/calendar/month/${currentYear}/${currentMonth}`)
            .then(res=>{
                setDayFiles(res.data)
                console.log(dayFiles)
            })
    }, [currentYear, currentMonth])

Почему console.log(dayFiles) показывает предыдущее значение currentMonth, хотя даныне res.data приходят другие.
В тоже время если добавить еще один хук, то все отображается корректно:
useEffect(() => {
        console.log(dayFiles)
    }, [dayFiles])

Понимаю, что дело в реакте и в логике работы компонентов. Объясните плиз на пальцах почему именно так работает. Спасибо заранее
  • Вопрос задан
  • 53 просмотра
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы