2017-09-23 1 views
1

いつかバックReduxのアプリに反応「私はプロジェクトを反応させるのではダンが</p> <p>がつぶやい

`.then(() => dispatch(...)).catch(...)` 

を見たとき、私はうんざりする。コンポーネントがディスパッチ中にスローした場合、あなたがキャッチに入るでしょう。」

、溶液がとても簡単であると言います。ただ、UIをレンダリングチェーンキャッチ、その後(後の())をしないでください。代わりに、エラーハンドラを第2引数としてthen()に渡します。

このような場合は、なぜ誰かが説明でき。

私の場合は、AJAX呼び出しを作っていますので、私は、私は、サーバーから、すなわちエラー、200ではありません何のためのサーバーの応答や内部のキャッチとして200で何のためにそれから中に入るだろうと仮定します。私はここに何かを逃していますか

答えて

3

だから、ダンはAsyncリクエストで、あなたが呼び出される成功コールが.then()をもたらすことが期待されるということで、何を意味するのか、あなたは順番にReduxのストアため、UIを更新します.then()dispatching an actionあり、もしそうなら以来そこにUIの更新処理中にエラーが、.catch()も呼ばれますされ、サーバのみが

ソリューションは

.then(
function(){ 
    //handle success 
    dispatch({...}) 
}, 
function() { 
    //handle reject() and Error for Async request 

}) 
+0

だからであるようにそれを処理するためにあるエラーを返したときに呼び出される、あなたはそれを期待するのに対し、それはどんな漁獲物も捕獲されるべきではない代わりに、常にほとんどの場合、API呼び出しから正常な応答の後、私たちは順番にUIをレンダリングしますディスパッチを経由して状態で何かを設定endupますので、上記の方法を使用するようにしてください。また、その中でディスパッチをしていないケースについても、この解決策は実現可能ですか? –

+0

確かにですが、.then()コールバック –

+0

のUIフォームを更新し、APIコールを持っているケースをコーディングして、成功すれば別のAPIコールを呼び出すことができます上記のソリューションに基づいて、成功した別のAPI呼び出し?私は各呼び出しでエラーを処理したいと思います。 –

関連する問題