inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

React로 NodeBird SNS 만들기

4-4. 사가의 제너레이터 이해하기

4분 45초 부분에 dispatch할때 질문드립니다

183

LUA

작성한 질문수 33

0

영상의 4분45초 부분에 보면 HOME컴포넌트가 생길때 useEffect를 통해 HELLO_SAGA 라는 액션을 디스패치하잖아요, 근데 HELLO_SAGA 라는 액션을 디스패치할떄 이액션이 어디에있는지 안불러와도 상관없나요??

 

이전 챕터에서는 dispatch를 하기위해 reducer에서 user나post를 import한 이후 액션을 dispatch해주었는데 지금은 HELLO_SAGA 라는 액션을 import 해오지않고 그냥 useEffect에서 디스패치하게했는데 잘실행이되네요

 

useEffect에서 HELLO_SAGA를 action으로 실행할때 reducer에서 찾나요 sagas에서 찾나요? 아님 reducer에서찾고 없으면 sagas에서 찾는것인지 궁금합니다

javascript react

답변 3

1

제로초(조현영)

네. dispatch({ type: 'HELLO' })를 하면 HELLO라는 액션이 실행되고, dispatch({ type: 'BYE' })를 하면 BYE라는 액션이 실행됩니다. 하지만 이것들은 reducer의 case가 없다면 아무 의미없는(아무것도 안 하는) 액션이 됩니다.

1

제로초(조현영)

네 사실 액션 이름을 user나 post에서 불러오는 것은 그냥 그 액션이 어디에 속하는지 알려주기 위한 상징적인 행동이고요. 실제로는 액션 이름은 그냥 문자열일 뿐입니다.

액션은 어떤 이름으로 하든 무조건 실행되고요. 그 액션이 리듀서에 존재하느냐에 따라서 state가 바뀝니다. 사가도 액션 이름이 뭐든간에 무조건 실행되지만 그 액션을 watch하고 있느냐에 따라 사가 로직이 실행되는 거고요.

0

LUA

액션이 어떤이름이든 무조건실행된다는게 무슨뜻인지 잘 모르겠는데...

결국 핵심은 reducer에 있는 case가 중요하다는 말씀이신거죠??

그럼 export const LOG_IN = 'LOG_IN'; 이런거 안쓰고 그냥 reducer만 정의해주어도 되나요??

next 10 이상에서는 redux dev tool 구동이 안되나요?

0

272

1

세션 갱신 문의 건

0

484

7

배포 진행 후 Highlight updates components render 표시

0

445

1

똑같은 기능을 하는 테이블

0

448

4

관계형

0

312

2

프론트 서버를 이용하지 않는경우

1

299

3

인피니트 스크롤링 사용시 오류

0

278

0

계속 이런에러가 떠서 해결하기는 했는데 어떤 의미인지 모르겠습니다.

0

435

2

req.user가 언제 생성되나요??

0

330

2

Cannot read property 'id' of null 에러

0

333

1

리트윗한 게시글 불러오는 sequelize

0

252

1

result.data에서 images인 이유

0

281

2

takeLatest에 대한 질문입니다.

1

342

2

프론트에서 express를 사용하지 않을때 동적라우팅

0

501

6

getInitialProps가 클라이언트에서 수행되는 이유?

0

258

1

리로드하면 팔로우 언팔로우 값이 초기화 되는 문제입니다.

0

445

2

스타일드 컴포넌트와 className을 통한 스타일 적용의 차이에 대해 궁금합니다

0

585

2

할인 쿠폰 사용이 안되는되요 (848-f9af83f183e3)

0

365

1

nodejs mvc 패턴

0

976

4

사용하고 보니, 람다 구성이 궁금합니다!

0

266

1

제로초님

0

445

1

새로고침 로그인 풀림 문제.

0

247

1

안녕하세요. 강의 너무 감사합니다

0

157

1

제로초님

0

170

1