javascript - ReactJS - 使用 axios 响应抛出提交错误

标签 javascript reactjs axios redux-form

我在理解代码时遇到问题,无法正常工作。基本上我想验证来自服务器的数据,验证时不会抛出错误,而是在我需要处理响应并抛出提交错误以显示 redux-form 验证错误时给出正确的响应。

以下是我的代码..

onFormSubmit = (values) =>{
    this.setState({loading:true});
    this.props.validateEmailFromServer(this.props.session,values,(response)=>{
      if(response.success === 2){
        throw new SubmissionError({email:'Email already Taken', _error:'Failed'});
      }
    });
}

Action定义如下

export function validateEmailFromServer(session,values,callback){

  var url='API_URL';
  var response = axios.get(url, null, 
                           getHeaders(session));
  return (dispatch) => {
    response.then(({data}) => {
      if(data.resource.length>0){
        callback({success: 2,message:'Email id is not available!'});
      }else{
        callback({success: 1,message:'Email is available!'});
      }
    }).catch((error) => {
      callback({success: 0, message: error});
    });
  }
}

我面临的问题是,当我在 onFormSubmit 函数上调用回调时抛出提交错误时,它会自动调用 axios 的错误 block ,我不是能够摆脱它..

我需要帮助来解决这个问题。

谢谢。

最佳答案

谢谢大家的指点,我设法得到了解决方案,我改变了 Action 并直接在onFormSubmit函数中调用axios,如下,它有效..

onFormSubmit = (values) =>{
    var getUrl = 'APIURL';
    return axios.get(getUrl,getHeaders(this.props.session))
            .then(function({data}) {
              if(data.resource.length>0)
                throw new Error("ValidationError");
              else{
                console.log("Proceed");
              }
            }).catch((err) =>{
                if(err.message === 'ValidationError')
                 throw new SubmissionError({email:'Email already Taken', _error:'Failed'});
            });
}

希望这可以帮助那些试图找到类似解决方案的人。

感谢您的帮助..干杯。

关于javascript - ReactJS - 使用 axios 响应抛出提交错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55009599/

相关文章:

javascript - 街景错误

javascript - 从 html select 无按钮提交,但使用 href 而不是 value?

javascript - 如何在 iframe 中加载 google plus 分享按钮?

javascript - 使用reactjs时复杂的逻辑应该放在哪里才能方便测试?

css - 如何修复 TypeError : CSS2Properties doesn't have an indexed property setter for '0'

javascript - 尝试使用 HTML 和 Javascript 在方程式中使用输入的用户变量

javascript - 为什么在 React Hooks 中排序后数据没有更新?

session - 如何在 Nuxt.js 中实现异步中间件

javascript - 如何将CURL请求转换为axios请求?

javascript - 如何在提交 POST 请求后通过 GET 请求呈现我的最新数据