2016-03-22 4 views

Odpowiedz

10

Wysłanie inicjuje nową akcję i to przejść całego łańcucha middleware.

Dalej - wyślij bieżącą akcję do następnego oprogramowania pośredniego w łańcuchu.

+0

co to znaczy przejść przez "pełny" łańcuch middleware? to jest końcowa wynikowa akcja z czegoś takiego jak #applyMiddleware, podczas gdy #next zwróci bieżący punkt, w którym akcja jest zmieniana? – mangocaptain

+0

@mangocaptain, sposób rozumiem, wewnątrz middleware, 'next' przenosi się na następny middleware, podczas gdy' store.dispatch' umieszcza podaną akcję na początku potoku oprogramowania pośredniego. Jeśli tak, możesz utworzyć nieskończoną pętlę z 'store.dispatch', ale nie możesz użyć' next'. –

+0

Masz na myśli, że idzie do reduktora, jeśli nie ma innego middleware ... –

1
createStore(reducer, 
applyMiddleware(
middlewareA, 
middlewareB, 
middlewareC 
) 
); 

Numer kolejny (działanie) w ciągu middlewareB spowodować działania, które ma być przekazywane middlewareC i reduktor. Wywołanie wywołania (akcji) w ramach middlewareB spowoduje, że akcja zostanie przekazana do middlewareA, , a następnie middlewareB, następnie middlewareC, a na koniec do reduktora, , zwracając wykonanie z powrotem do middlewareB. Calling dispatch() wiele razy jest powszechną i ważną praktyką. next() może być również wywoływany więcej niż jeden raz, ale nie jest to zalecane, ponieważ każda akcja przekazana do next() spowoduje pominięcie oprogramowania pośredniego przed bieżącym (dla przykładu , potencjalnie pomijając oprogramowanie pośredniczące do rejestrowania).

Powiązane problemy