0

レデューサーと初期状態を下回っています。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;
  }
}
4

2 に答える 2