Если вы посмотрите на документы , кажется, что вам нужно вручную обрабатывать ошибки, вызванные вашим вызовом POST, поэтому вместо простого возврата объекта в ваш обработчик ошибок вы должны сделать следующее:
extend('unique-email', (value) => {
return this.$axios.post('/api/auth/unique-email', { email: value })
.then((res) => {
return {
valid: true,
};
}, (err) => {
this.$refs.myValidationObserver.setErrors({
email: ['Email already registered']
});
})
}, {
immediate: false
})
Это требует двух изменений за пределами расширения:
- добавить атрибут
vid="message"
к вашему ValidationProvider (VP) вокруг вашего v-textfield
- добавить атрибут
ref="myValidationObserver"
вашему ValidationObserver, который упаковывает VP в точку # 1.
Или, может быть, я что-то упустил! Откуда у вас появилась идея вернуть предмет, который у вас был в вопросе? Я не вижу ничего подобного в текущих документах ...
return {
valid: false,
data: { message: 'Email already registered' }
};