더북(TheBook)

미들웨어 내부에서 store.dispatch를 사용하면 첫 번째 미들웨어부터 다시 처리합니다. 만약 미들웨어에서 next를 사용하지 않으면 액션이 리듀서에 전달되지 않습니다. 즉, 액션이 무시되는 것이죠.

이제 미들웨어를 마저 구현해 봅시다. 이번에 만들 미들웨어는 다음 정보를 순차적으로 콘솔에 보여 줍니다.

1. 이전 상태

2. 액션 정보

3. 새로워진 상태

 

loggerMiddleware.js

const loggerMiddleware = store => next => action => {
  console.group(action && action.type); // 액션 타입으로 log 그룹화함
  console.log('이전 상태', store.getState());
  console.log('액션', action);
  next(action); // 다음 미들웨어 혹은 리듀서에게 전달
  console.log('다음 상태', store.getState()); // 업데이트된 상태
  console.groupEnd(); // 그룹 
};

export default loggerMiddleware;

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.