더북(TheBook)

만약 addOneThunk를 화살표 함수로만 사용한다면 다음과 같이 구현할 수 있습니다.

const addOne = x => x + 1;
const addOneThunk = x => () => addOne(x);

const fn = addOneThunk(1);
setTimeout(() => {
const value = fn(); // fn이 실행되는 시점에 연산
console.log(value);
}, 1000);

redux-thunk 라이브러리를 사용하면 thunk 함수를 만들어서 디스패치할 수 있습니다. 그러면 리덕스 미들웨어가 그 함수를 전달받아 storedispatchgetState를 파라미터로 넣어서 호출해 줍니다.

다음은 redux-thunk에서 사용할 수 있는 예시 thunk 함수입니다.

const sampleThunk = () => (dispatch, getState) => {
// 현재 상태를 참조할 수 있고,
// 새 액션을 디스패치할 수도 있습니다.
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.