レデューサーと初期状態を下回っています。classinfo は、ネストされた生徒の状態配列を持つ親状態です。以下のレデューサーを使用して、以前の状態からすべての生徒を削除し、「action.data.students」から新しい生徒を追加して、新しい状態を返すことを計画しています (以前の生徒を新しい生徒に置き換えます)。初めて生徒を追加するときは問題ありませんが、別の生徒を追加すると、「ディスパッチ間で状態の変化が検出されました」というエラーが表示されます。間違っているところを教えてください。
classInfo[
{
Id:"",
students:[]
}]
function sampleReducer(state = initialState.classInfo, action) {
switch (action.type) {
case types.ADD_CLASSROOMS:
return [...state, ...action.data];
case types.REMOVE_CLASSROOMS:
return state.filter((class) => class.id !== action.data);
case types.ADD_STUDENT_DETAILS:
const stateObj = state.map((class, i) => {
if (class.id === action.data.id) {
return {
...class,
students: {
...action.data.students,
},
};
}
return {
...class,
};
});
return stateObj;
default:
return state;
}
}