해결된 질문
23.07.14 13:57 작성
·
198
0
[ 게시글 삭제 saga 작성하기 ] 수강 중 질문 드립니다.
이전 댓글을 추가할때는 reudce에서
case ADD_COMMENT_SUCCESS: {
const postIndex = state.mainPosts.findIndex(v => v.id === action.data.postId);
const post = { ...state.mainPosts[postIndex] }; // 얕은 복사
const Comments = [action.data, ...post.Comments];
const mainPosts = [...state.mainPosts];
mainPosts[postIndex] = {
...post,
Comments,
};
return {
...state,
mainPosts,
addCommentLoading: false,
addCommentDone: true,
addCommentError: false,
};
}
이런식으로 얕은 복사를 하셨는데요.
case REMOVE_POST_SUCCESS: {
const mainPosts = state.mainPosts.filter(v => v.id !== action.data.id);
return {
...state,
mainPosts,
removePostLoading: false,
removePostDone: true,
removePostError: false,
};
}
게시글을 삭제할때는 왜 'state.mainPosts'를 얕은 복사해서 조작하지 않는 건지 궁금합니다.
혹시 filter가 기존 state.mainPosts 을 수정하지 않으며, 새로운 배열을 return하기에 얕은 복사가 필요없는 건가요?
답변 기다리겠습니다.
감사합니다 :)
2023. 07. 14. 15:31
감사합니다!