Задать вопрос
Этот вопрос закрыт для ответов, так как повторяет вопрос Почему значения хуков не переприсваиваются?
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])

Понимаю, что дело в реакте и в логике работы компонентов. Объясните плиз на пальцах почему именно так работает. Спасибо заранее
  • Вопрос задан
  • 58 просмотров
Подписаться 1 Простой
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Javascript.ru
    Курс по React
    5 недель
    Далее
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
Ваш ответ на вопрос

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

Потому что уже есть похожий вопрос.
Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽
ITK academy Казань
от 50 000 до 90 000 ₽