@timofeus91
Junior Frontend Developer

Как работает reducer React-Redux?

Добрый день! начал изучать Redux и тут возник вопрос - моё приложение написано с использованием React/ Redux . Есть кнопка по нажатию на которую выполняются определенные действия

const changeAmount = (top) => {
    dispatch({ type: DATA_FOR_REPOSTS_CHANGE_TOP, data: top });
    dispatch(getListReportsApiAction(isDataForReports));
  };


Первый диспатч перезаписывает часть данных в reducer , а второй вызывает action , который обращается как раз к тем данным что перезаписаны. Но он получает корректные данные только со 2 раза и так постоянно. При этом если второй диспатч вынести в useEffect и поставить зависимость по изменению данных ( которые в 1 диспатч меняются) , то работает все отлично.

useEffect(() => {
    dispatch(getListReportsApiAction(isDataForReports));
    console.log(isReports);
  }, [isDataForReports]);


Подскажите, пожалуйста, что посмотреть или как настроить функцию чтобы она получала обновленные данные без использования useEffect
  • Вопрос задан
  • 71 просмотр
Решения вопроса 1
@wonderingpeanut
При вызове второго диспатча в стейте еще нет данных, которые ты отправил первым диспатчем

Решение - использовать thunk либо, как ты сделал, useEffect
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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