Redux-Thunk
3 minuty czytania
Redux-Thunk to biblioteka, która pozwala na wykonywanie operacji asynchronicznych w aplikacji opartej na Redux. Jest to jedno z najpopularniejszych rozszerzeń Redux, które pozwala na proste i czytelne zarządzanie stanem aplikacji.
Redux-Thunk jest dodatkiem do biblioteki Redux. Hostowany jako oddzielna paczka w NPM, jest możliwy do pobrania i ustawienia jako middleware przy inicjalizacji Redux bez skomplikowanej konfiguracji. Pozwala uzyskać asynchroniczność zapytań. Middleware'y w redux pozwalają przechwycić zapytanie i zamiast wykonać pojedynczą zmianę na storze może wykonać serię zapytań, w międzyczasie mogą odpytać API po zewnętrzne dane. Całość jest możliwa, do uzyskania bez Redux-Thunk, ale ten znacznie to ułatwia.
Przykładowe zapytanie w Redux-Thunk
Najprostszym przykładem wykorzystania Redux-Thunk będzie zapytanie do API w celu zalogowania użytkownika. Aby zapytanie przebiegło poprawnie musi wydarzyć się parę rzeczy.
1. Ustawienie stanu aplikacji, że logowanie się rozpoczęło.
2. Wysłanie zapytania do API
3. Ustawienie danych użytkownika w store
4. Ewentualne zwrócenie błędu
export const authLogin = (email, password) => {
return dispatch => {
dispatch(authStart());
axios
.post(`${API_URL}/auth/api/v1/login/`, {
email: email,
password: password
})
.then(res => {
const token = res.data.token;
const user = res.data.user;
dispatch(authSuccess(token, user));
})
.catch(err => {
dispatch(authFail(err));
});
};
};
Dzięki takiemu podejściu możemy wyizolować część logiki naszej aplikacji do pojedynczej funkcji. Możemy wykorzystać mockowanie danych z API i w pełni przetestować działanie takiego Thunka.
Obsługa błędów w Redux-Thunk
W każdej aplikacji korzystającej z asynchronicznych zapytań do API istotne jest odpowiednie zarządzanie błędami, aby zapewnić użytkownikowi jak najlepsze doświadczenie. Redux-Thunk pozwala na obsługę błędów w sposób elastyczny, umożliwiając zarówno reakcję na błędy w samych akcjach, jak i ich propagowanie do komponentów.
Jednym z kluczowych podejść jest przechwytywanie błędów bezpośrednio w funkcji thunk i aktualizowanie stanu aplikacji tak, aby można było np. wyświetlić komunikat o błędzie. Można również wykorzystać różne poziomy obsługi błędów – od prostych komunikatów po zaawansowane mechanizmy ponawiania zapytań (retry) czy globalne zarządzanie błędami.
Ważne jest także rozróżnianie typów błędów – niektóre mogą wynikać z problemów po stronie serwera (np. błędy HTTP 500), inne z braku połączenia internetowego, a jeszcze inne mogą być spowodowane niepoprawnymi danymi wejściowymi. Dzięki Redux-Thunk możliwe jest dostosowanie logiki obsługi błędów do konkretnych przypadków i odpowiednie reagowanie, np. poprzez automatyczne przekierowanie użytkownika, wyświetlenie powiadomienia lub zapisanie błędu w logach.
Dobrą praktyką jest także przechowywanie informacji o statusie zapytania w stanie Redux – dzięki temu aplikacja może dynamicznie reagować, np. poprzez wyświetlanie wskaźnika ładowania podczas przetwarzania zapytania i ukrywanie go w przypadku sukcesu lub błędu. Odpowiednia obsługa błędów w Redux-Thunk poprawia nie tylko stabilność aplikacji, ale także jej użyteczność i doświadczenie użytkownika.

Dlaczego warto używać Redux-Thunk?
Redux-Thunk to jedno z najpopularniejszych middleware do obsługi operacji asynchronicznych w Redux. Jego główną zaletą jest prostota i elastyczność w zarządzaniu żądaniami sieciowymi i innymi asynchronicznymi działaniami, które wymagają interakcji z Redux Store. Oto kilka kluczowych powodów, dla których warto używać Redux-Thunk:
- Łatwa obsługa operacji asynchronicznych
Redux sam w sobie obsługuje tylko synchroniczne akcje, co oznacza, że nie można bezpośrednio wysyłać żądań API w akcjach Redux. Redux-Thunk rozwiązuje ten problem, umożliwiając tworzenie funkcji akcji, które wykonują operacje asynchroniczne, a następnie aktualizują Store po ich zakończeniu. - Większa kontrola nad przepływem akcji
Dzięki Redux-Thunk możemy wstrzymywać, modyfikować lub anulować akcje w zależności od stanu aplikacji. Na przykład możemy zaimplementować warunek sprawdzający, czy dane są już załadowane, zanim wykonamy kolejne żądanie API, co pomaga uniknąć niepotrzebnych zapytań. - Obsługa efektów ubocznych w jednym miejscu
Redux-Thunk pozwala na scentralizowanie logiki związanej z efektami ubocznymi, takimi jak pobieranie danych, zapisywanie do lokalnej pamięci czy interakcje z API. Dzięki temu logika biznesowa nie jest rozsiana po komponentach, co sprawia, że kod jest bardziej czytelny i łatwiejszy w utrzymaniu. - Prostota w porównaniu do alternatyw
W przeciwieństwie do bardziej zaawansowanych rozwiązań, takich jak Redux-Saga czy Redux-Observable, Redux-Thunk jest stosunkowo prosty w użyciu i nie wymaga nauki dodatkowych koncepcji, takich jak generatory czy RxJS. Jest to szczególnie korzystne dla osób, które dopiero zaczynają pracę z Redux. - Łatwe testowanie akcji i reduktorów
Redux-Thunk pozwala na łatwe testowanie funkcji asynchronicznych, ponieważ możemy testować je niezależnie od komponentów. Możemy także sprawdzać, czy dane akcje zostały poprawnie wywołane i czy stan Redux Store został odpowiednio zmodyfikowany po wykonaniu zapytania.
Podsumowując, Redux-Thunk jest lekkim i skutecznym rozwiązaniem, które doskonale sprawdza się w aplikacjach React korzystających z Redux. Jego prostota, elastyczność i łatwość implementacji sprawiają, że jest jednym z najczęściej wybieranych middleware do zarządzania efektami ubocznymi.
Alternatywy do Redux-thunk
Alternatywą do Redux-thunk jest Context API, które jest wbudowane bezpośrednio w bibliotekę React. Zapytania asynchroniczne możemy z łatwością tam utworzyć. Praktyczną różnicę zobaczymy dopiero, gdy Context API będzie obsługiwać spory obiekt, w którym będziemy często aktualizować parametry. Może się okazać, że Context API jest wtedy mniej wydajny i zbyt często uruchamia aktualizacje DOM.
Mimo, że Redux jest oddzielną biblioteką to posiada bogatą dokumentację z dobrze opisanymi przykładami. Przykładów dla Redux-Thunk też jest dużo i jest zdecydowanie produkcyjnym rozwiązaniem do utrzymywania stanu aplikacji.
Nasza oferta
Web development
Dowiedz się więcejMobile development
Dowiedz się więcejE-commerce
Dowiedz się więcejProjektowanie UX/UI
Dowiedz się więcejOutsourcing
Dowiedz się więcejPowiązane artykuły
Dark kitchen i catering dietetyczny: jak technologia zmienia nowoczesną gastronomię
12 cze 2026
Gastronomia w ostatnich latach przeszła cichą, ale głęboką rewolucję. Klient coraz rzadziej chce iść do restauracji, a coraz częściej oczekuje, że to dobrze zbilansowany, świeży posiłek sam trafi pod jego drzwi o właściwej porze. Na tej zmianie wyrosły dwa zjawiska, które dziś wyznaczają kierunek rozwoju całej branży, czyli dark kitchen oraz catering dietetyczny. Łączy je jedno: bez nowoczesnej technologii, integracji systemów i analizy danych po prostu nie miałyby prawa działać w skali, w jakiej działają dzisiaj.

Coliving i najem instytucjonalny: jak technologia zarządza społecznością
10 cze 2026
Rynek najmu w Polsce dojrzewa w tempie, którego jeszcze pięć lat temu mało kto się spodziewał. Modele takie jak coliving i najem instytucjonalny przestały być ciekawostką z Berlina czy Londynu i na dobre wpisały się w krajobraz polskich miast, oferując mieszkańcom standard obsługi porównywalny z sektorem hotelarskim. Za tą transformacją stoi technologia, która spaja w jedną całość zarządzanie budynkiem, obsługę najemcy i budowanie społeczności.
AI w medycynie: zastosowania sztucznej inteligencji w ochronie zdrowia
8 cze 2026
Sztuczna inteligencja przestała być wizją z filmów science fiction i na dobre zagościła w gabinetach lekarskich, salach operacyjnych oraz laboratoriach diagnostycznych. Coraz więcej placówek medycznych na całym świecie wdraża rozwiązania oparte na algorytmach uczenia maszynowego, które realnie wspierają lekarzy w diagnozowaniu chorób, planowaniu leczenia oraz zarządzaniu opieką nad pacjentem.
Konfigurator produktów 3D w branży modowej - jak zwiększyć konwersje?
1 cze 2026
Branża modowa od kilku lat przechodzi prawdziwą transformację cyfrową, a klienci coraz rzadziej zadowalają się statycznym zdjęciem produktu i krótkim opisem w karcie sklepowej. Konfigurator produktów 3D stał się jednym z najskuteczniejszych narzędzi, które łączą świat fizyczny ze światem cyfrowym, pozwalając kupującym dosłownie projektować ubrania, buty czy akcesoria zgodnie z własnym gustem. Dla właścicieli sklepów modowych oznacza to nie tylko wyższe wskaźniki konwersji, ale także mniejszą liczbę zwrotów, większe zaangażowanie użytkowników oraz silniejszą pozycję w wyszukiwarkach.
AI w logistyce: automatyzacja dostaw routing i predykcja popytu
25 maj 2026
Sztuczna inteligencja przestała być w logistyce ciekawostką technologiczną i stała się realnym narzędziem przewagi konkurencyjnej. Algorytmy uczenia maszynowego planują trasy kurierów, sterują robotami w magazynach i z wyprzedzeniem przewidują, czego klienci będą potrzebować za tydzień, miesiąc czy kwartał. W efekcie firmy transportowe i dystrybucyjne skracają czas dostaw, obniżają koszty paliwa oraz redukują nadmiarowe zapasy, jednocześnie odpowiadając na rosnące oczekiwania konsumentów i wymogi środowiskowe.
GDS - czym jest Global Distribution System i jak hotel może z niego korzystać?
14 maj 2026
Dystrybucja w hotelarstwie od lat ewoluuje, a obok znanych każdemu portali funkcjonuje znacznie mniej oczywisty, ale niezwykle istotny kanał sprzedaży, jakim jest Global Distribution System. To właśnie GDS odpowiada za znaczną część rezerwacji w segmencie business travel i stanowi główne narzędzie pracy biur podróży, korporacyjnych działów travel oraz agentów MICE na całym świecie. Dla hoteli, które chcą skutecznie docierać do podróżujących służbowo i budować stabilne obłożenie w dni robocze, obecność w GDS bywa nie tyle dodatkową opcją, co realną przewagą konkurencyjną.
Rezerwacja wizyt weterynaryjnych online - jak to wdrożyć w klinice?
2 maj 2026
Rezerwacja wizyt online przestała być wyróżnikiem nowoczesnych klinik weterynaryjnych i stała się czymś, czego opiekunowie zwierząt po prostu oczekują. Tradycyjny telefon do recepcji wciąż ma swoje miejsce, ale coraz częściej przegrywa z wygodą umówienia wizyty o dwudziestej drugiej, z kanapy, w kilkanaście sekund. Dla właściciela kliniki oznacza to nie tylko zmianę w sposobie komunikacji z klientami, ale też realną szansę na lepszą organizację pracy zespołu i mniejszą liczbę nieodwołanych wizyt.
Zobacz wszystkie artykuły