Эквивалентом componentDidMount в хуках является функция useEffect. Функции, переданные в useEffect, выполняются при рендеринге каждого компонента, если только вы не передадите ему второй аргумент.
Для чего используетсяEffect?
Что делает useEffect? Используя этот хук, вы говорите React, что ваш компонент должен что-то сделать после рендеринга. React запомнит переданную вами функцию (мы будем называть ее нашим «эффектом») и вызовет ее позже после выполнения обновлений DOM.
Является ли componentDidMount хуком React?
useEffect - это хук React, где вы можете применять побочные эффекты, например, получение данных с сервера. Первый аргумент - это обратный вызов, который будет запущен после компоновки браузера и рисования.
Почему не вызывается useEffect?
Причина, по которой это происходит, заключается в том, что вызов API является асинхронным, он не заполняет состояние немедленно, поэтому рендеринг происходит первым и пытается прочитать. текущий от начального состояния погоды null. Решение: убедитесь, что в вашем методе рендеринга не читается погода.
Всегда ли useEffect работает на монтировании?
Важно: хук useEffect всегда будет запускаться при монтировании независимо от, если в его массиве зависимостей есть что-либо. Вероятно, мы не хотим запускать этот эффект для наших данных, когда он не определен (как это будет при начальном рендеринге), а скорее хотим дождаться, пока он не будет заполнен из вызова API.