React native 可能未处理的承诺拒绝/错误:请求失败,状态代码400

React native 可能未处理的承诺拒绝/错误:请求失败,状态代码400,react-native,redux,react-redux,axios,React Native,Redux,React Redux,Axios,我知道这里面有一些答案,我都读过了。但他们都没有帮助。 这是我的错误信息: 以下是我的行动: export function registerUser(data){ const request = axios({ method: "POST", url: `${REGISTER}${API_KEY}`, data: { email: data.email, password: data.password, }, heade

我知道这里面有一些答案,我都读过了。但他们都没有帮助。 这是我的错误信息:

以下是我的行动:

export function registerUser(data){
const request = axios({
    method: "POST",
    url: `${REGISTER}${API_KEY}`,
    data: {
        email: data.email,
        password: data.password,
    },
    headers:{
        "Content-Type":"application/json"
    }
}).then(response => response.data)

return {
    type: "REGISTER_USER",
    payload: request,
}
}


谢谢

记录错误和成功,然后检查:

export function registerUser(data){
const request = axios({
    method: "POST",
    url: `${REGISTER}${API_KEY}`,
    data: {
        email: data.email,
        password: data.password,
    },
    headers:{
        "Content-Type":"application/json"
    }
 })  
 .then(function (response) {
    // handle success
    console.log(response);
  })
 .catch(function (error) {
    // handle error
    console.log(error);
  })

记录错误和成功,然后检查:

export function registerUser(data){
const request = axios({
    method: "POST",
    url: `${REGISTER}${API_KEY}`,
    data: {
        email: data.email,
        password: data.password,
    },
    headers:{
        "Content-Type":"application/json"
    }
 })  
 .then(function (response) {
    // handle success
    console.log(response);
  })
 .catch(function (error) {
    // handle error
    console.log(error);
  })

无论在何处调用带有承诺的api,都应该使用
catch
处理程序,因为当api失败时,您不需要这样做,您必须处理错误

export function registerUser(data){
  return axios({
    method: 'post',
    url: `${REGISTER}${API_KEY}`,
    data: {
        email: data.email,
        password: data.password,
    },
    headers: {
       'Content-Type': 'application/json'
    }})
    .then(function (response) {
        //handle success
        return {
            type: "REGISTER_USER",
            payload: response.data,
        }
    })
    .catch(function (err) {
        //handle error
        return {
            type: "REGISTER_USER_FAILED",
            payload: null
        }
    });
}
像这样调用函数

const data = {
    email: 'asd@asd.asd',
    password: 123
}
registerUser(data).then((response)=>{
  console.log(response)
})

无论在何处调用带有承诺的api,都应该使用
catch
处理程序,因为当api失败时,您不需要这样做,您必须处理错误

export function registerUser(data){
  return axios({
    method: 'post',
    url: `${REGISTER}${API_KEY}`,
    data: {
        email: data.email,
        password: data.password,
    },
    headers: {
       'Content-Type': 'application/json'
    }})
    .then(function (response) {
        //handle success
        return {
            type: "REGISTER_USER",
            payload: response.data,
        }
    })
    .catch(function (err) {
        //handle error
        return {
            type: "REGISTER_USER_FAILED",
            payload: null
        }
    });
}
像这样调用函数

const data = {
    email: 'asd@asd.asd',
    password: 123
}
registerUser(data).then((response)=>{
  console.log(response)
})

尝试获取用于进行API调用的库

function registerUser(data){
    return fetch(url, {
        method: 'POST',
        body: JSON.stringify(data),
        headers:{
            'Content-Type': 'application/json'
        }
        })
        .then(res => res.json())
        .then((apiResponse)=>{ 
            console.log("api response", apiResponse) 
            return {
                type: "REGISTER_USER",
                api_response: apiResponse.data
            }
        })
        .catch(function (error) {
            return {
                type: "REGISTER_USER",
                api_response: {success: false}
            }
        })
}
调用上述函数

let data = { 
 email: "youremail@gmail.com,
 password:"yourpassword"
}   

registerUser(data).then((response)=>{
  console.log(response)
})

尝试获取用于进行API调用的库

function registerUser(data){
    return fetch(url, {
        method: 'POST',
        body: JSON.stringify(data),
        headers:{
            'Content-Type': 'application/json'
        }
        })
        .then(res => res.json())
        .then((apiResponse)=>{ 
            console.log("api response", apiResponse) 
            return {
                type: "REGISTER_USER",
                api_response: apiResponse.data
            }
        })
        .catch(function (error) {
            return {
                type: "REGISTER_USER",
                api_response: {success: false}
            }
        })
}
调用上述函数

let data = { 
 email: "youremail@gmail.com,
 password:"yourpassword"
}   

registerUser(data).then((response)=>{
  console.log(response)
})

我将数据记录到console,但我有它。它不再给我警告,但仍然不工作。我将数据记录到console,并且我有它。它不再给我警告,但仍然不工作。它删除了警告,但我仍然没有得到数据。您从API响应中获得了什么数据。它是空的吗?我得到了newUser,它等于成功:FalseFromAPI你得到了响应,但是这个值没有返回到函数registerUser是这样的。我想是的。这就像我第二天做这件事,所以我有点困惑。它删除了警告,但我仍然没有得到数据。你从API响应中得到了什么数据。它是空的吗?我得到了newUser,它等于成功:FalseFromAPI你得到了响应,但是这个值没有返回到函数registerUser是这样的。我想是的。这就像我第二天做这件事,所以我对这一切有点困惑。