Что такое Redux Thunk

Ответ

Redux Thunk — это middleware для Redux, позволяющий обрабатывать асинхронные действия (actions). Он проверяет, является ли action функцией, а не объектом, и если да — вызывает её, передавая dispatch и getState.

Пример:

const fetchData = () => {
  return (dispatch, getState) => {
    dispatch({ type: 'FETCH_START' });
    fetch('/api/data')
      .then(res => res.json())
      .then(data => dispatch({ type: 'FETCH_SUCCESS', payload: data }))
      .catch(err => dispatch({ type: 'FETCH_ERROR', error: err }));
  };
};

// Использование:
dispatch(fetchData());

Когда использовать:

  • Асинхронные запросы (API, таймеры)
  • Условный dispatch (например, проверка состояния перед действием)

Альтернативы: Redux Saga, RTK Query. Thunk прост для базовых сценариев.