Встречается на собеседованиях • сегодня

Как сделать асинхронный запрос Redux

Для асинхронных запросов в Redux используют middleware, чаще всего redux-thunk или redux-saga.

С redux-thunk это выглядит так:

javascript
// action creator
const fetchData = () => async (dispatch) => {
  dispatch({ type: 'FETCH_START' });
  try {
    const response = await fetch('https://api.example.com/data');
    const data = await response.json();
    dispatch({ type: 'FETCH_SUCCESS', payload: data });
  } catch (error) {
    dispatch({ type: 'FETCH_ERROR', error });
  }
};

// store setup
import { createStore, applyMiddleware } from 'redux';
import thunk from 'redux-thunk';
import rootReducer from './reducers';

const store = createStore(rootReducer, applyMiddleware(thunk));

text

Основные моменты:
1. Action creator возвращает функцию вместо объекта
2. Middleware перехватывает такие функции
3. Внутри можно делать асинхронные операции и диспатчить обычные actions
4. Обработка состояний загрузки, успеха и ошибки

Для более сложных сценариев можно использовать `redux-saga` с генераторами.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы