2016-05-26 3 views
2

派遣されたアクションの結果を使い、新しいアクションを送りたい。 あり、私は派遣した後、結果を返すにはどうしたらいいですか?

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); 
} 

どのように私はReduxのでこれを行うと、私が使用できるライブラリすることができますか?使用するコードの例

答えて

3

以前の操作の結果に基づいてアクションをディスパッチするのはthunk-middlewareです。サンク・ミドルウェアを使用することで、アクション作成者は自分のアクションをディスパッチできる機能を返すことができます。

私は3つのアクション持って言うことができます:私は

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)) 
       }) 
      } 
      } 

の下にあなたは、あなたの中にそれを含めることによって、あなたのコンポーネントからのログイン機能を派遣することができない機能を設定することができ

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

mapDispatchToProps

よく理解するために、http://redux.js.org/docs/advanced/AsyncActions.htmlをチェックしてください。

関連する問題