简体   繁体   中英

I'm getting “Uncaught (in promise) TypeError: Cannot read property 'data' of undefined” error in axios patch api

I am trying to update an array of objects using an Axios/Node.js API. I have successfully created the array, but when I try to pass in through an axios patch request, I am getting the "Cannot read property 'data' of undefined". Anyone know what I might be doing wrong?

My axios function is below:

export const updateTrans = async (transArr) => {
try {      
const res = await axios({
  method: 'PATCH',
  url: `http://127.0.0.1:7000/api/v1/property/${id}`,
  data: { 
      "transactions": transArr  }
});
  
if (res.data.status === 'success') {
  showAlert('success', 'Data updated successfully!');

}
 } catch (err) {
console.log(err.response.data.message );

showAlert('error', err.response.data.message);
}
};

I have tried to stringify "transArr" as well, but still no luck.

The problem is that you're accessing err.response.data without checking if err.response exists. err.response is only present if the request was made and there was a response . If, for example, a CORS error or some network error occurred (or some other error inside the try block), it will not be present.

Just check that err.response exists before using it.

try {
  // ...
} catch (err) {
  console.log(err, err.response && err.response.data);

  if (err.response && err.response.data) {
    // The request was made and the server responded with a status code
    // that falls out of the range of 2xx
    showAlert("error", err.response.data.message);
    return;
  }

  showAlert("error", err.message);
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM