인프런 커뮤니티 질문&답변

D_One님의 프로필 이미지
D_One

작성한 질문수

React로 NodeBird SNS 만들기

4-12. 회원가입 리덕스 사이클

질문이여

해결된 질문

작성

·

123

0

리덕스 사가에서여,

function* signUp(action){

    try{
        yield call(signUpAPI, action.data); 
        yield put({
            typeSIGN_UP_SUCCESS
        })
       
    }catch(e){
 
        yield put({
            type:SIGN_UP_FAILURE,
            error:e,
        })
    }
}

이 부분이요 ,, 

제가 , 

export const signUpAction = () =>{ return type: SIGN_UP_SUCCESS }

이거를 다른 파일에서 뽑아서, 

function* signUp(action){

    try{
        yield call(signUpAPI, action.data); 
        yield put(signUpAction()) // <-에러
       
    }catch(e){
 
     ....
}

yield put(signUpAction())  이 부분에서 이런 에러가 나더라구요. 

actions must be plain objects. use custom middleware for async actions

인터넷에 찾아보니까 thunk? 인가를 쓰라고 하던데, 왜 그런거죠... 잘 이해가 안가네요?  signUpAction 함수가 비동기가 아니여서 그런건가요 ??

답변 2

1

D_One님의 프로필 이미지
D_One
질문자

아 오타가 낫네요 감사합니다... ! 

1

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

진짜 코드가 export const signUpAction = () =>{ return type: SIGN_UP_SUCCESS }인가요?

오타가 아닌가요?

export const signUpAction = () => ({ type: SIGN_UP_SUCCESS })

put 자리에는 객체가 들어가야하는데 signUpAction()의 리턴값이 객체가 아닌것같습니다.

D_One님의 프로필 이미지
D_One

작성한 질문수

질문하기