Я пытаюсь осмыслить VeeValidate 4, но он сильно отличается от предыдущей версии, поэтому я сталкиваюсь с множеством вопросительных знаков и препятствий. Я работаю с приложением Vue 3, используя API композиции, с несколькими формами в разных компонентах / представлениях. Существует кнопка «Следующая страница», которая переводит вас к следующему представлению, но поскольку эта кнопка полностью отделена от форм, у меня нет никакого handleSubmit, подключенного к формам. Вместо этого я хочу сохранить его в состоянии, является ли текущая форма действительной или нет, и таким образом определить, разрешено ли пользователю перейти на следующую страницу.
То, что я хотел бы сделать, но не уверен, смогу ли я, - это иметь возможность подключаться, когда происходят проверки полей, и таким образом сохранять состояние, если все поля формы действительны или нет. Я много раз просматривал документацию, но не могу понять. Буду очень признателен за любую помощь, советы или мысли.
Это упрощенная версия одного из моих компонентов / представлений Vue:
<template>
<form>
<CustomInput v-model="name" inputType="text" name="name" />
<div v-if="nameErrors.length">{{ nameErrors[0] }}</div>
<CustomInput v-model="width" inputType="text" name="width" />
<div v-if="widthErrors.length">{{ widthErrors[0] }}</div>
</form>
</template>
<script lang="ts">
import { defineComponent } from 'vue';
import { useField } from 'vee-validate';
import CustomInput from 'CustomInput.vue';
export default defineComponent({
name: 'View',
components: {
CustomInput,
},
setup() {
const { value: name, errors: nameErrors } = useField('name', 'required');
const { value: width, errors: widthErrors } = useField('width', 'required|numeric|boatWidth');
return {
name,
width,
nameErrors,
widthErrors,
};
},
});
</script>
Component hiearchy:
LayoutComponent
FormComponent (which component depends on what step the user is on)
NextButtonComponent