더북(TheBook)

여기서 GET_POST 액션의 경우에는 API 요청을 할 때 어떤 id로 조회할지 정해 주어야 합니다. redux-saga를 사용할 때는 id처럼 요청에 필요한 값을 액션의 payload로 넣어 주어야 합니다. 예를 들어 지금 상황이라면 다음과 같은 액션이 디스패치됩니다.

{
  type: 'sample/GET_POST',
  payload: 1
}

그러면 이 액션을 처리하기 위한 사가를 작성할 때 payload 값을 API를 호출하는 함수의 인수로 넣어 주어야 합니다.

API를 호출해야 하는 상황에는 사가 내부에서 직접 호출하지 않고 call 함수를 사용합니다. call 함수의 경우, 첫 번째 인수는 호출하고 싶은 함수이고, 그 뒤에 오는 인수들은 해당 함수에 넣어 주고 싶은 인수입니다. 지금 getPostSaga의 경우에는 id를 의미하는 action.payload가 인수가 되겠지요?

사가를 작성하여 구현하는 과정에서 처음 redux-thunk를 사용했을 때처럼 반복되는 코드가 나왔습니다. 충분히 간소화할 수 있는 코드들입니다. 지금은 일단 기능을 구현하고, 나중에 리팩토링하겠습니다.

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