Это шаблон, который используется, чтобы избежать двух ситуаций:
- обновление состояния, если компонент, содержащий эту ловушку, уже был отключен до завершения HTTP-запроса.
- избежать состояния гонки
Функция, возвращаемая функцией обратного вызова хука useEffect
, используется для выполнения очистки, как componentWillUnmount
в компонентах на основе классов. Эта функция очистки запускается, когда компонент размонтируется или перед запуском эффекта в следующий раз.
Таким образом, если компонент размонтирован во время выполнения HTTP-запроса, функция очистки хука useEffect будет запущена и установит active
в false . После этого, всякий раз, когда возвращается результат HTTP-запроса, состояние не будет обновляться, потому что active
будет ложным.
См. Эффекты с очисткой раздел документации по реакции, чтобы понять функцию очистки из useEffect
и см. Условия гонки , чтобы лучше понять проблему, связанную с условиями гонки, которая решается здесь с помощью переменной active
.