thunk 미들웨어 잡업 중 논리로직 단계? 질문이 있습니다.
285
작성한 질문수 2
미들웨어가 들어간 이후 궁금한 부분이 있어서 질문 합니다.
리덕스에 dispatch를 하면 리듀서가 이를 받고, 기존에 액션함수를 만들었다면, 만든 액션함수를 매칭 시켜서 상태관리를 하잖아요?
그래서 이번 강좌(2-4.redux-thunk)에서도 비동기 로그인을 디스패치 하잖아요?
store.dispatch(
logIn({
id: 1,
name: "goodsosbva",
admin: true,
})
이 이후에 액션에 정의한
// async action creator
const logIn = (data) => {
return (dispatch, getState) => {
// async action
dispatch(logInRequest());
try {
setTimeout(() => {
dispatch(
logInSuccess({
userId: 1,
nickname: "khszzang!",
})
);
}, 2000);
} catch (e) {
dispatch(logInFailure(e));
}
};
};여기로 가서 로직을 하잖아요?
이때, 만들어둔 미들웨어가
const thunkMiddleware = (store) => (next) => (action) => {
if (typeof action === "function") {
// 비동기
return action(store.dispatch, store.getState);
}
return next(action);
};
const enhancer = applyMiddleware(firstMiddleware, thunkMiddleware);
const store = createStore(reducer, initialState, enhancer);
어떤 순간에 작동하는지가 감이 안와서 질문드립니다.
이전 강의에서는
dispatch -> 미들웨어 -> reducer
라고 하신거 같은데요.
이걸 보고 나름 이해하려고 노력했는데...
걸리는 점은
지금은 비동기로 만든 액션함수가 하나니까 미들웨어에서 하나로 매칭될 수 있겠는데..?
여러개면 어떻게 되는거지라는? 의문입니다.
제질문이 좀 난해한거같기도 한데요.
요약하면, 미들웨어가 어디서 동작하는지 모르겠다.
비동기 미들웨어 요청을 할때 액션함수를 알맞게 어떻게 요청하는지 몰라서 질문드립니다.
답변 1
0
네, 질문 자체가 이해가 잘 안 되긴 합니다.
미들웨어는 이미 리덕스 안에 등록되어 있는 것이고요. 현재 login은 비동기 액션 함수이고 비동기 액션 함수의 리턴값은 typeof action === 'function'입니다. 동기 액션 함수의 리턴값은 typeof action === 'object'입니다. 그래서 thunkMiddleware에서 비동기 액션 함수인 경우에는 if문 내부가 실행되는 겁니다. 비동기 액션 함수의 리턴값은 (dispatch, getState)를 매개변수로 받으니 action(store.dispatch, store.getState)로 호출하는 것이고요.
지금은 비동기로 만든 액션함수가 하나니까 미들웨어에서 하나로 매칭될 수 있겠는데..?
여러개면 어떻게 되는거지라는? 의문입니다.
라고 하셨는데 비동기 액션함수가 여러개여도 어차피 한번에 하나씩 thunkMiddleware에서 실행되므로 아무 상관이 없습니다.
context api, redux를 혼용하는건 별로일까요?
0
368
1
섹션 3 mobx autorun 관련 질문입니다.
0
255
1
rootSaga에서 call를 사용하는 이유가 궁금합니다.
0
358
1
observable의 함수를 익명함수로 바꿔봤습니다.
0
383
1
useSelector 리랜더링 질문있습니다.
0
382
1
비동기 action 타입을 뭘로 지정해야 할까요?
0
258
1
redux-thunk질문
0
432
1
state 변경 시 질문
0
346
1
state변경 시 질문
0
329
2
firstMiddleware와 thunkMiddleware 순서 질문
0
433
1
객체 동적 다이나믹 속성?? 질문
1
272
1
미들웨어 질문
0
247
1
리덕스 사가 실습 파일 확인 부탁드립니다!
1
581
2
1-6 강의에서 질문 있습니다!
1
359
1
redux-saga 깃헙 파일
0
369
1
createStore -> configureStore
0
300
1
전역 변수와 전역 상태 값
0
666
2
Redux toolkit 과 axios API 호출에 관한 질문입니다.
0
439
1
MobX Data
0
233
1
mobx state action 변화 감지 관련
0
717
1
mobx configure
0
208
1
리덕스 툴킷 과 saga질문
0
287
1
로깅 미들웨어 질문입니다
0
238
1
제너레이터 질문드립니다.
0
204
1





