diff --git a/packages/vee-validate/src/useField.ts b/packages/vee-validate/src/useField.ts index aa56d577e..1263aa629 100644 --- a/packages/vee-validate/src/useField.ts +++ b/packages/vee-validate/src/useField.ts @@ -123,7 +123,7 @@ export function useField( bails, }); } else { - result = (await form.validateSchema())[unref(name)]; + result = (await form.validateSchema())[unref(name)] ?? { valid: true, errors: [] }; } meta.pending = false; diff --git a/packages/vee-validate/src/useForm.ts b/packages/vee-validate/src/useForm.ts index 71e8fbb74..27c7fe0cc 100644 --- a/packages/vee-validate/src/useForm.ts +++ b/packages/vee-validate/src/useForm.ts @@ -521,7 +521,7 @@ async function validateYupSchema( return err.inner || []; }); - const fields = form.fieldsById.value; + const fieldsById = form.fieldsById.value || {}; const errorsByPath = errors.reduce((acc, err) => { acc[err.path as keyof TValues] = err; @@ -529,8 +529,8 @@ async function validateYupSchema( }, {} as Record); // Aggregates the validation result - const aggregatedResult = keysOf(fields).reduce((result: Record, fieldId) => { - const field: PrivateFieldComposite | PrivateFieldComposite[] = fields[fieldId]; + const aggregatedResult = keysOf(fieldsById).reduce((result: Record, fieldId) => { + const field: PrivateFieldComposite | PrivateFieldComposite[] = fieldsById[fieldId]; const messages = (errorsByPath[fieldId] || { errors: [] }).errors; const fieldResult = { errors: messages,