• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    해결됨

불변성 유지에서 궁금한점

21.02.19 17:01 작성 조회수 141

0

addPost에 unshift는 return을 쓰지 않아도 변경 되는데

deletePoast의 filter는 return을 사용해야지만 적용이 됩니다.

혹시 왜그런지 알 수 있을까요? 찾아봐도 나오지가 않네요...

export const postSlice = createSlice({
  name: "post",
  initialState: [] as IPost[],
  //동기처리 & 내부적 액션
  reducers: {
    addPost: (stateaction=> {
      state.unshift(action.payload);
    },
    deletePost: (stateaction=> {
      return state.filter((element=> element.id !== action.payload);
    },
    resetPost: (stateaction=> {
      return [];
    },
  },
  //비동기 처리 & 외부적 액션
  extraReducers: {},
});

답변 1

답변을 작성해보세요.

0

filter는 기존 배열을 수정하는 게 아니라 새로운 배열을 생성합니다. 기존 배열을 수정하는 것만 immer가 알아들을 수 있습니다.