@Boris007

В каких случаях используют useEffect без второго аргумента в виде массива?

В каких случаях используют useEffect без второго аргумента в виде массива?
В примерах useEffect практический всегда используют его со вторым аргументом []
Для чего сделали у хука useEffect возможность работать рекурсивно?
  • Вопрос задан
  • 155 просмотров
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
использовал для кейса, когда есть реф и у этого рефа current мог меняться во время жизни компонента.

вкратце:
const ref = useRef<HTMLDivElement>(null);
const prevRef = useRef<HTMLDivElement>(null);

useEffect(() => {
    if (ref.current === prevRef.current) { return; }
    prevRef.current = ref.current;

    // реф поменялся, что-то делаем
});


по факту я здесь делаю то же самое, что происходит в депенденсах, но депенденсы непригодны:
1) [ref] - бесполезно, будет один и тот же, эффект не перевызовется
2) [ref.current] - бесполезно, реф меняется после фазы рендера.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы