@1233211

Как вызвать функцию только раз в useEffect при разных изменениях?

У меня есть такой код:

useEffect(() => {
        setPage(1);
    }, [activeTab]);

    useEffect(() => {
        loadItems();

    }, [page, activeTab]);


при переключении таба на странице, мне нужно перейти к первой странице и вызвать функцию loadItems, чтобы она подтянула данные. Сейчас у меня меняется activeTab и если page не 1, то срабатывает сразу второй useEffect, после того, как setPage запишет новую страницу, то второй useEffect снова вызовется. Если второму useEffect не добавлять activeTab и если переключать вкладку, находясь на первой странице, то второй useEffect не вызовется.
  • Вопрос задан
  • 302 просмотра
Решения вопроса 1
Alexandroppolus
@Alexandroppolus
кодир
Варианты:
1) выкинуть на мороз первый useEffect. При смене activeTab (это ведь происходит по клику на каком-то элементе?) заодно делать setPage(1).
2) дублировать в useRef текущие значения стейта, обновлять во втором эффекте, и не вызывать загрузку при определенной комбинации. Немного костыльный вариант, советую всё таки первый.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект