ReactJS-用axios替换获取API无效

我在带有FETCH api的ReactJS中有一块代码,可以很好地工作,但是当我尝试用AXIOS替换它时,即使我检查了文档,也无法正常工作。

FETCH工作代码API:

const signup = (user) => {
       return fetch(`${API}/signup`,{
            method: "POST",headers: {
                accept: 'application/json',"Content-Type": 'application/json'
            },body: JSON.stringify(user)
        })
        .then(response => {
            return response.json();
        })
        .catch(err => {
            console.log(err);
        });
    }

    const clickSubmit = (event) =>{
        event.preventDefault();
        signup({name,email,password})
            .then(data => {
                if(data.error){
                    setvalues({...values,error: data.error,success: false})
                }
                else{
                    setvalues({...values,name: '',email: '',password: '',error:'',success:true})
                }
            })
    }

不能与AXIOS库一起使用相同的代码:

import axios from 'axios';

 const signup = (user) => {
       return axios(`${API}/signup`,data: JSON.stringify(user)
        })
        .then(response => {
            return response.data;
        })
        .catch(err => {
            console.log(err);
        });
    }

    const clickSubmit = (event) =>{
        event.preventDefault();
        signup({name,success:true})
                }
            })
    }

用axios库编写上述代码后出现的错误是:

  

未处理的拒绝(TypeError):无法读取未定义的属性“错误”

axios代码有什么问题?

注意:

显然我将其范围缩小到了未定义的地方。

signup({name,success:true})
                }
            })
    }

.then()块中的“数据”以未定义的形式出现,我不知道为什么使用fetch api可以正常工作。

henryjiangyun 回答:ReactJS-用axios替换获取API无效

参考Axios的文档,网址为https://github.com/axios/axios#response-schema

您缺少的是

.then(response => {
    return response.data;
})

代替:

.then(response => {
    return response;
})
本文链接:https://www.f2er.com/3170065.html

大家都在问