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

G General님의 프로필 이미지
G General

작성한 질문수

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

인피니트 스크롤링 적용하기

REQUEST 2번씩 가는 현상

작성

·

204

0

리듀서에서 등록한 LOAD_POST_REQUEST와

사가에서 이벤트리스너처럼 등록한 watchLoadPosts가 둘 다 LOAD_POST_REQUEST로 묶여있어서 2번 일어나는게 맞나요?

몇 강 전에 리듀서가 사가보다 먼저 발생하는 로그 찍는걸 본 것 같아서요.

리듀서에서는 플래그들 바꾸는 역할을 하고 사가에서는 실질적인 처리를 하는 것으로 이해했는데...

그럼 리듀서와 사가에서 동시에 등록된 액션들은 항상 2개가 실행된다고 생각해도 되나용?

답변 2

1

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

액션은 한 번 실행되는거고요. 액션에 연결된 함수가 각각 리듀서에서 한 번, 사가에서 한 번 일어난다고 이해하시면 됩니다.

0

G General님의 프로필 이미지
G General
질문자

아하 액션은 1개지만 연결된 함수들이 1번씩 총 2번


그럼 리덕스 데브 툴즈에서 LOAD_POSTS_REQUEST가 2번씩 일어나는데
첫 번째 LOAD_POSTS_REQUEST의 변경점이 loadPostsLoading이 false에서 true로, loadPostsDone이 true에서 false로 바뀝니다.
두 번째 일어나는 LOAD_POSTS_REQUEST는 항상 첫 번째 일어나는것보다 40~60ms가량 늦게 발생하고, 아무런 변경점이 발생하지 않습니다. 제 생각으로는 사가에서 등록한 대로 delay를 건 다음에 SUCCESS를 디스패치하는 것 같습니다.

그래서 리듀서와 사가에서 등록된 액션에 대한 반응들이 리듀서와 사가 순서대로 일어난다고 이해했는데... 그럼 이 경우 리덕스 데브 툴즈가 찍어주는 LOAD_POSTS_REQUEST는 함수들이 실행될 때 연결된 액션을 로그로 찍어주는 것으로 생각해도 될까요? 로그 찍히는걸로 유추해서 아예 LOAD_POSTS_REQUEST가 2번 실행되는것으로 착각했었네요

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

load posts requests가 두번 호출되는건 소스코드에 문제가 있는 겁니다. 확인해보셔야합니다

G General님의 프로필 이미지
G General

작성한 질문수

질문하기