Задать вопрос
@Boris007

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

В каких случаях используют useEffect без второго аргумента в виде массива?
В примерах useEffect практический всегда используют его со вторым аргументом []
Для чего сделали у хука useEffect возможность работать рекурсивно?
  • Вопрос задан
  • 209 просмотров
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Яндекс Практикум
    Мидл фронтенд-разработчик
    5 месяцев
    Далее
  • Яндекс Практикум
    React-разработчик
    3 месяца
    Далее
  • Яндекс Практикум
    Фронтенд-разработчик
    10 месяцев
    Далее
Решения вопроса 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] - бесполезно, реф меняется после фазы рендера.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
ITK academy Нижний Новгород
от 50 000 до 90 000 ₽
ITK academy Воронеж
от 50 000 до 90 000 ₽
IT ATLAS Москва
от 200 000 до 250 000 ₽