2016-05-26 3 views
2

Ich möchte ein Ergebnis der Aktion verwenden, die gesendet wurde und neue Aktion versenden. ein Beispiel für Code, den ichWie kann ich das Ergebnis einer Aktion nach dem Versand in redux zurücksenden?

function mapDispatchToProps(dispatch) { 
    return bindActionCreators({ 
     addApplication(data, vacancy_id) { 
      dispatch(candidateActions.addCandidate(data)) 
       .then((newCandidate) => { 
          dispatch(applicationActions.addApplication(data.video, vacancy_id, newCandidate._id)) 
       }); 
     } 
    }, dispatch); 
} 

Wie kann ich das in redux verwenden möchten und welche Bibliotheken kann ich nutzen?

Antwort

3

Sie sollten eine thunk-middleware verwenden, die für das Absenden von Aktionen verantwortlich ist, die auf Ergebnissen früherer Aktionen basieren. Durch die Verwendung einer Thunk-Middleware kann ein Aktionsersteller eine Funktion zurückgeben, die in der Lage ist, eigene Aktionen zu versenden.

können sagen, ich habe 3 Aktionen:

1. loginRequest - send credentials for login 
2. loginSuccess - dispatch action if credentials are valid 
3. loginFailure - dispatch action if login failed 

i eine Funktion einrichten können, die die unten tut

export function login(credentials){ 
     return function(dispatch){ 
     dispatch(loginRequest(credentials){ 
      return fetch(`http://localhost:8000/login`) 
      .then(response => response.json()) 
       .then(json => 
       dispatch(loginSuccess(creds)) 
      .catch(err => 
       dispatch(loginFailure(err)) 
       }) 
      } 
      } 

können Sie dann die Login-Funktion von Ihrer Komponente versenden, indem Sie es in Ihrem mapDispatchToProps

Sie sollten wahrscheinlich überprüfen - http://redux.js.org/docs/advanced/AsyncActions.html für ein besseres Verständnis

Verwandte Themen