Если вы внимательно посмотрите на ошибку, она говорит:
Cannot set property 'errors' of undefined
Итак, проблема в том, что вы пытаетесь установить свойство неопределенного объекта, в данном случае: this
, ваш Vue компонент.
Простой и удобный способ решения этой проблемы - использовать функцию стрелки вместо обычной функции в вашем Promise.catch()
обратном вызове. Проще говоря, регулярное выражение функции имеет свой собственный this
контекст, в котором функция стрелки отсутствует.
Вот пример кода, который должен помочь вам лучше понять:
new Promise().then()
.catch((error) => {
if(error.response && error.response.status == 422) {
this.errors = error.response.data.errors;
}
});
Чтобы узнать больше о функции стрелки и связывание this