인프런 커뮤니티 질문&답변

Minsub Yoon님의 프로필 이미지
Minsub Yoon

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

게시글 불러오기

메인포스트 로딩 관련 질문

작성

·

180

0

mainPosts 로딩에 관련해 궁금한게 있어 질문 올립니다.

index 페이지로 처음 접근할 때는 LOAD_POSTS_REQUEST가 잘 작동하지만, signup이나 proifle 페이지로 이동 후 다시 index페이지로 이동하면 같은 포스트가 중복되서 로딩되는 일이 발생합니다. 

포스트 reducer에서 LOAD_POST_SUCCESS 액션을 처리할 때 mainPosts를 concat을 사용해 처리하기 때문에 이런 상황이 발생한다는 건 이해했지만, 어떻게 하면 해결할 수 있을지는 잘 모르겠습니다. 좋은 의견을 주시면 감사하겠습니다.

답변 3

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

LOAD_POSTS_REQUEST에서 lastId가 없는 경우에는 mainPosts를 []로 초기화해주면 됩니다.

0

영상에 기존  initialState 에 들어 있던 값을 초기화 하시는 부분이 편집에서 빠졌네요.. ^^ 한참 찾았습니다.

export const initialState = {
mainPosts: [], <======== 이렇게
imagePaths: [], // 이미지를 업로드 할때 이미지 경로
postAdded: false,

hasMorePosts: true,
loadPostsLoading: false,
loadPostsDone: false, // 추가
loadPostsError: null, // 추가
// 게시글 추가가 완료되었을때 true 로 변한다. postAdded: false, => addPostLoading: false,
addPostLoading: false,
addPostDone: false, // 추가
addPostError: null, // 추가

addCommentLoading: false, // 댓글 추가가 완료되었을때 true 로 변한다.
addCommentDone: false, // 추가
addCommentError: null, // 추가

removePostLoading: false,
removePostDone: false, // 추가
removePostError: null, // 추가
};

0

Minsub Yoon님의 프로필 이미지
Minsub Yoon
질문자

감사합니다. 해결됬습니다.

리듀서의 형태가 일정 패턴을 따르다보니 if를 쓸 생각을 못해봤네요..ㅎㅎ..

Minsub Yoon님의 프로필 이미지
Minsub Yoon

작성한 질문수

질문하기