アクションペイロードをレデューサーに渡していて、レデューサーが適切なdata
を更新して状態全体を返すようにしたいとします。アクションで減速機の状態を更新するには?
リデューサー:私はaction.payload
に応じて1つにstate.data
を設定するにはどうすればよい
const initialState = {
fname: 'FNAME',
lname: 'LNAME',
data: []
}
const DATA1 = [
{id:1, name:'D1a'},
{id:2, name:'D1b'}
]
const DATA2 = [
{id:1, name:'D2a'},
{id:2, name:'D2b'}
]
export default function peopleReducer(state=initialState, action){
console.log(action.payload);
switch(action.payload){
case "case1":
return {...state, DATA1}; // how do I code this?
case "case2":
return {...state, DATA2};
default:
return state
}
}
?
私が試した:
case "case1":
return {
...state,
data: [...state.data, ...DATA1]
};
をしかし、それはデータを追加し続けます。スプレッドオペレータ...DATA1
を使用し、それをdata[]
にプッシュする前に、データをクリアします。
のように見えるのでしょうか? – Aaqib
古いデータを状態から守りたくない場合は、なぜreturn文に入れていますか?ちょうどデータを行う:[... data1] –