gpt4 book ai didi

nuxt.js - veeValidate 3.x + Nuxt js : push a custom error to ValidationObserver

转载 作者:行者123 更新时间:2023-12-03 16:37:52 28 4
gpt4 key购买 nike

我使用 Nuxt js + veeValidate 3.x

我的插件看起来像这样:

import Vue from 'vue'
import {
ValidationObserver,
ValidationProvider,
extend
} from 'vee-validate'
import { required, email, min, confirmed } from 'vee-validate/dist/rules'

extend('required', {
...required,
message: 'This field is required'
})
extend('email', email)
extend('min', min)
extend('confirmed', confirmed)
Vue.component('ValidationProvider', ValidationProvider)
Vue.component('ValidationObserver', ValidationObserver)

作为插件添加到 nuxt.config.js plugins: [{ src: '~/plugins/vee-validate.js', ssr: false }, ..模板如下所示:
<ValidationObserver ref="registrationForm"> 
<ValidationProvider rules="required|email" name="Email Address" v-slot="{ errors }">
<div>
<input type="text" v-model.lazy="user.email"/>
<span class=form-errors">{{ errors[0] }}</span>
</div>
</ValidationProvider>
</ValidationObserver>

验证以这种方式完美运行:
methods: {
async submit() {
const isValid = await this.$refs.registrationForm.validate()
if (isValid) {
this.register()
....

但是在 this.register()的执行过程中,我可能会从API端得到一些错误信息(例如:错误:电子邮件已存在)。如何将接收到的错误推送到验证错误数组中(如果有)?旧方式为 this.errors.add()不再起作用(当然)。我已经阅读了 ErrorBag,但我只是不明白如何在插件中导入/导出它

最佳答案

最后我在这里找到了答案:

https://logaretm.github.io/vee-validate/advanced/server-side-validation.html#handling-backend-validation

这称为“处理后端验证”

简而言之,答案是:

....
this.$refs.registrationForm.setErrors({ email: ['Your email does\'t look good enough! Try again!'] })
...

将在输入字段下方显示错误

PS:如果您使用 Laravel 作为后端,则错误处理将开箱即用:
// try,async stuff sending data to the endpoint
...
catch (error) {
this.$refs.registrationForm.setErrors(error.response.data.errors)
}

关于nuxt.js - veeValidate 3.x + Nuxt js : push a custom error to ValidationObserver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59485231/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com