2017-03-03 11 views
3
ここ

私の目標は、私は追加のデータを追加した後、あなたは次の状態のオブジェクトの上に見ることができるように減速が、ここではかなり混乱してネストされたデータ追加はデータが

enter image description here

イムを処理するためにasia arrayです突然data objectの外側に移動し、挿入されるデータが内部に入ります。ここでの問題は、asia arraydata objectの外側に移動してはならないということです。

const INITIAL_STATE = { 
    data: [] 
}; 

export default (state = INITIAL_STATE, action) => { 
    switch(action.type) { 
     // Fetch speakers 
     case GET_SPEAKERS_SUCCESS: { 
      return Object.assign({}, state.data, { 

       data: { 
        [action.payload.country]: action.payload.data 
       } 
      }); 
     } 
    } 

    return state; 
} 
+0

あなたがいないだけでstate.dataので、全体の状態を返すべきです... 'Object.assign({}、state' –

+0

私はそれを行いましたが、前の状態'アジア 'にある 'データオブジェクト'の意味をオーバーライドしますが、 xt州、asiaは 'thailand'に取って代わります。 –

答えて

2

試し:代わりの

data : [...state.data, 
    {  
     [action.payload.country]: action.payload.data 
    } 
] 

は、ここに私のコードです

data: { 
    [action.payload.country]: action.payload.data 
} 
+0

ありがとう、この作品は:D。私はこれが '... state.data'だと思いますか現在の状態のコピーを作成していますか? –

+0

これはスプレッド演算子です。基本的には、配列全体をループする必要なしに配列全体を配置します。 https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Operators/Spread_operatorを参照してください。これがあなたの質問に答えるならば、適切な印を付けてください。 –

+0

データがオブジェクトであったため、適切な方法は 'data:{... state.data、{ [action.payload.country]:action.payload.data }}です。 –