如何在vuejs中设置来自laravel的错误
我试图在Vue中从Laravel检索错误,但我在控制台中收到此错误消息“无法设置未定义的属性'errors'。 我尝试了不同的方法,如直接分配错误和vue的$set()将错误消息设置到数据函数的error对象,但仍然是徒劳的 这是我的密码如何在vuejs中设置来自laravel的错误,laravel,vue.js,Laravel,Vue.js,我试图在Vue中从Laravel检索错误,但我在控制台中收到此错误消息“无法设置未定义的属性'errors'。 我尝试了不同的方法,如直接分配错误和vue的$set()将错误消息设置到数据函数的error对象,但仍然是徒劳的 这是我的密码 export default{ data(){ return{ form: {}, errors:{} } }, methods:{ async onSave() { aw
export default{
data(){
return{
form: {},
errors:{}
}
},
methods:{
async onSave() {
await Api().post('/stocks/store',this.form)
.then()
.catch(function (error) {
if(error.response && error.response.status == 422) {
let errors = error.response.data.errors;
// this.$set(this.$data.errors,'errors',errors)
console.log(errors);
this.errors = errors;
}
});
}
}
这就是我的控制台显示错误消息的方式
这是来自laravel的错误消息
h如何设置此项。如果仔细查看错误,它会显示带有来自laravel的错误消息的错误
无法设置未定义的属性“errors”
因此,问题是您试图设置一个未定义对象的属性,在本例中:this
,您的Vue组件
解决此问题的一个简单方便的方法是在Promise.catch()回调函数中使用arrow函数而不是常规函数。简单地说,正则函数表达式有自己的上下文,而arrow函数没有
下面是一个代码示例,可以帮助您更好地理解:
newpromise()。然后()
.catch((错误)=>{
if(error.response&&error.response.status==422){
this.errors=error.response.data.errors;
}
});
要了解有关箭头功能和