우선 createRequestSaga.js 파일을 열고 그 내부에 createRequestActionTypes라는 함수를 선언하여 내보내세요.
lib/createRequestSaga.js
import { call, put } from 'redux-saga/effects'; import { startLoading, finishLoading } from '../modules/loading'; export const createRequestActionTypes = type => { const SUCCESS = `${type}_SUCCESS`; const FAILURE = `${type}_FAILURE`; return [type, SUCCESS, FAILURE]; }; export default function createRequestSaga(type, request) { (...) }
이 함수를 사용하면 요청에 관련된 액션 타입들을 선언할 때 다음과 같이 작성할 수 있습니다.
modules/auth.js
import { createAction, handleActions } from 'redux-actions'; import produce from 'immer'; import { createRequestActionTypes } from '../lib/createRequestSaga'; const CHANGE_FIELD = 'auth/CHANGE_FIELD'; const INITIALIZE_FORM = 'auth/INITIALIZE_FORM'; const [REGISTER, REGISTER_SUCCESS, REGISTER_FAILURE] = createRequestActionTypes( 'auth/REGISTER', ); const [LOGIN, LOGIN_SUCCESS, LOGIN_FAILURE] = createRequestActionTypes( 'auth/LOGIN', );