2017-06-15 4 views
0

私の現在のプロジェクトでは、コンポーネントの一部がステートフルです。いくつかの状態プロパティは、ディスパッチメソッドの結果に依存します。ディスパッチ応答のリッスン

this.props.dispatch({ 
    type: Constants.CONTRACT_DELETE_START, 
    payload: { 
    contract: contract 
    } 
}); 

基本的に私はそうのように、このからの応答を取得する必要があります:

this.props.dispatch({ 
    type: Constants.CONTRACT_DELETE_START, 
    payload: { 
    contract: contract 
    } 
}) 
.catch(err => { 
    this.setState({ 
    foo: "bar" 
    }); 
}) 

それはReduxのストアにfoo: barロジックを実行することなく、それを行うことは可能ですか?

ps。私は自分の行動にRedux Sagaを使用しています。

+0

あなたはサガについて話していますが、あなたのリベンササガのコードは提供していません。これまでに試したことをお見せしてください。 – Andru

答えて

1

私は約束のことについて確認していない(サガでを解決するか、拒否するか)しかし、あなたはまた、次のように行うことができます。

this.props.dispatch({ 
    type: Constants.CONTRACT_DELETE_START, 
    payload: { 
    contract: contract, 
    callback:() => { 
     // Do your stuff here 
    } 
    } 
}) 

ただ、ここでコールバックを渡すとによって、あなたのサガでこれを呼び出しますあなたのロジックに。

+0

通常、アクションをシリアライズ可能にしたい、つまり、単純なオブジェクトとコールバック関数を含まないようにして、タイムトラベルのデバッグなどの作業が引き続き機能するようにします。 – Andru