2017-06-07 11 views
2

axios非同期が

export const register = (user, callback, errorback) => async dispatch => { 
 
    try{ 
 

 
    let response = await axios.post(`${PINGUIN_ROOT_URL}/users/create`, user) 
 

 
    if (response.data.auth_token){ 
 
     auth_token = response.data.auth_token 
 
     dispatch({ type: REGISTER_SUCCESS, payload: auth_token}) 
 
     callback() 
 
    } else { 
 
     let error = response 
 
     throw error 
 
    } 
 

 
    }catch(error){ 
 

 
    dispatch({type: REGISTER_FAIL}) 
 
    errorback() 
 

 
    }

こんにちは検証エラーを返さない機能を待って、私たちは学んだことをベースにして、ログイン・レジスタを構築しています。それは動作しますが、何らかの理由でエラーの検証が戻ってきません。私はレールapiを構築し、postmanを使用すると検証エラーが表示されますが、reduxを使ってエラーを取り戻そうとすると、上記のレジスタ関数は "let response = .."行になり、すぐにcatch(エラー)ライン。

Error: Request failed with status code 422 
 
    at createError (createError.js:16) 
 
    at settle (settle.js:18) 
 
    at XMLHttpRequest.handleLoad (xhr.js:77) 
 
    at XMLHttpRequest.dispatchEvent (event-target.js:172) 
 
    at XMLHttpRequest.setReadyState (XMLHttpRequest.js:538) 
 
    at XMLHttpRequest.__didCompleteResponse (XMLHttpRequest.js:381) 
 
    at XMLHttpRequest.js:485 
 
    at RCTDeviceEventEmitter.emit (EventEmitter.js:181) 
 
    at MessageQueue.__callFunction (MessageQueue.js:250) 
 
    at MessageQueue.js:101

は今再び、コードが動作している:私はキャッチされているエラーは以下の通りですので、私はポストマンを使用するときに私が見る実際の検証エラーをバック渡す方法を知りません実際にユーザーにログインしても、実際に必要な検証エラーが表示されません。私は郵便配達員のjsonとして確認の誤りが戻ってくるのを見ますが、私はそれらを実際に見ることはできません。助けてください?

答えて

1

あなたはerror.response

try{ 
    let response = await axios.post(`${PINGUIN_ROOT_URL}/users/create`, user) 
    ... 
    } catch(error){ 
    console.error(error.response) 
} 
としてごエラーオブジェクトからレスポンスオブジェクトを取得することができます