2017-03-01 5 views
0

残りのAPIを使って複数のレコードを同時に作成しています。 action.payloadには、サーバーから返されて作成された各レコードのidが含まれています。私のレデューサーで作成した各レコードにIDを追加する最良の方法は何ですか?オブジェクトの配列を減算器に追加する

これはこれまで私が行ってきたことです。私はエラーが発生していないが、レコードは作成された後、私のアプリに表示されていません。

const INITIAL_STATE = { all: [] }; 

export default function(state = INITIAL_STATE, action) { 

case POST_TERRITORY_GEOGRAPHY_MASS: 

let territories= action.territories.records; 

action.payload.then(request => { 

    for(var i = 0; i < request.data.results.length; i++) { 
    territories[i].Id = request.data.results[i].id 
    } 

    return { 
    ...state.all, territories 
     ???? 
    } 
}) 
} 

あなたは約束のthen部分の内側に減速状態を更新することができますか?

答えて

0

還元剤を約束しないでください。非同期には2つのアクションが必要です。最初の行為は請求する行為です。非同期操作を呼び出すだけでなく、リデューサに最初の操作を伝えることもできます。これは、状態を「読み込み中」に切り替えるために使用されます。

この非同期操作が完了すると、結果を保持する2番目のアクションが呼び出されます。このアクションはあなたの減速機に到着し、あなたのアプリを「読み込み中」の状態から取り出し、結果で更新します。

Redux's Reddit API exampleを参照し、fetchPostsの機能を探します。

+0

私が間違っていると私を訂正してください。その例では、「redux-thunk」ミドルウェアが使用されています。http://redux.js.org/docs/advanced/ExampleRedditAPI.html#configurestorejs – Vikram

関連する問題