我在带有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可以正常工作。