2017-03-24 3 views
3

私はPromises and Reactの初心者です。私はpromxを解決するために私のアクションクリエイターでredux-thunkを使用しています。私は自分のコンポーネントからアクションクリエータを呼び出しています。リクエストの成功または失敗の後、別のURLにルーティングするにはどうすればよいですか?私は削除関数のアクションの作成者のコードを添付しています。成功またはエラー後にリダイレクトするためにredux thunkを使用するにはどうすればよいですか?

ディスパッチしたときにパラメータ(routeTo)を使用して状態を正常に設定する必要がありますか?

ここで削除機能です:

export function deletePost(id){ 
    var request = axios.delete(`${ROOT_URL}posts/${id}${API_KEY}`); 

    return function(dispatch){ 
     request.then((response)=>{ 
      console.log("I deleted"+response.data.title); 
     }).catch((error)=>{ 
      console.log("DELETE_ERROR: "+JSON.stringify(error)); 
     }); 
    } 
} 

私は私のコンポーネントでのonclick関数からこの関数を呼び出しています。

答えて

8

私がreduxでルーティングするのが分かった最善の方法は、自分の状態のURI部分を考慮し、それを還元することです。あなたのためにこれを行う優れたライブラリreact-router-reduxがあります。

import { push } from 'react-router-redux'; 

export function deletePost(id){ 
    var request = axios.delete(`${ROOT_URL}posts/${id}${API_KEY}`); 

    return function(dispatch){ 
     request.then((response)=>{ 
      console.log("I deleted"+response.data.title); 
      dispatch(push('/delete-success-uri')); 
     }).catch((error)=>{ 
      console.log("DELETE_ERROR: "+JSON.stringify(error)); 
      dispatch(push('/delete-fail-uri')); 
     }); 
    } 
} 
+0

ありがとう:

セットアップ・ルータ - Reduxのを反応させ、その後、あなただけのアクションが場所を変更する派遣することができたら、そうあなたのサンクは次のようになります!私はこれのために減速機のケースを作成するつもりだったが、それはあまりにもハッキリと感じた。 –

関連する問題