У меня есть блок кода в ReactJS с API-интерфейсом FETCH, который прекрасно работает, но когда я попытался заменить его на AXIOS, он не работает идеально, хотя я проверил документацию.
РАБОЧИЙ КОДAPI FETCH:
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`, {
method: "POST",
headers: {
Accept: 'application/json',
"Content-Type": 'application/json'
},
data: JSON.stringify(user)
})
.then(response => {
return response.data;
})
.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:
Необработанный отказ (TypeError): невозможно прочитать свойство 'error' из неопределенного
Что не так в коде с аксиосами?
Примечание:
Видимо, я сузил его до того места, куда приходит undefined.
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})
}
})
}
Здесь, в блоке .then (), «данные» приходят как неопределенные, и я не знаю, почему, как с fetch api, это работаетхорошо.