@1233211

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

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

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

    useEffect(() => {
        loadItems();

    }, [page, activeTab]);


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

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

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