Extra argument передаётся третьим параметром thunk: после dispatch и getState. Из него можно получить API-клиент и выполнить запрос.
Как получить данные из API внутри санка, учитывая, что API прокидывается как extra argument в thunk middleware?
Extra argument передаётся третьим параметром thunk: после dispatch и getState. Из него можно получить API-клиент и выполнить запрос.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Extra argument передаётся третьим параметром thunk: после dispatch и getState. Из него можно получить API-клиент и выполнить запрос.
Если middleware настроен с extraArgument: { api }, санка выглядит так:
const loadItems = () => async (dispatch, getState, { api }) => {
dispatch({ type: 'items/loading' });
try {
const items = await api.getItems();
dispatch({ type: 'items/loaded', payload: items });
} catch {
dispatch({ type: 'items/failed', payload: 'Ошибка загрузки' });
}
};
Имя метода и формат результата определяются вашим API-клиентом. Для теста передайте fake-клиент через тот же аргумент.
Источник: redux.js.org.