2017-11-29 15 views
0

addListItemが実際に還元状態である "list"という配列を実行すると、ページを変更しようとしていますが、更新する必要があります。私はそれを更新することができましたが、配列の代わりにオブジェクトを返します。代わりに配列を返す必要がありますが、それを行うためにコードをリファクタリングする方法はわかりません。Redux - レデューサーのオブジェクトではなく配列を返す

/** 
* Add Item 
*/ 
case 'playlist/addListItem_success': { 
    return { 
    ...state, 
    list: { 
     ...state.list, 
     [action.meta.position]: { 
     ...state.list[action.meta.position], 
     status: true 
     } 
    } 
    } 
} 

答えて

2

配列を返すには、あなたは、アレイ・スプレッド構文(例えば[...someArray])の代わりに、オブジェクトの広がりを使用する必要があると思いますが、あなたは、特定のインデックスを更新するためにそれを使用することはできません。 mapでは、必要なものをエレガントに表現できます。

return { 
    ...state, 
    list: state.list.map((e, i) => i === action.meta.position ? {...e, status: true} : e) 
}; 
関連する問題