I have a form with this structure.
If I group the addressfields inside an own object in the data and schema object it doesn't works.
// works
const formData = ref({
email: "",
firstName: "",
lastName: "",
street: "",
addressDetails: "",
...
});
const schema = z.object({
email: z
.string()
.min(1, { message: "E-Mail is required" })
.email("Invalid email"),
firstName: z.string().min(1, { message: "First Name is required" }),
lastName: z.string().min(1, { message: "Last Name is required" }),
...
});
// doesn't works
const formData = ref({
email: "",
address: {
firstName: "",
lastName: "",
...
}
});
const schema = z.object({
email: z
.string()
.min(1, { message: "E-Mail is required" })
.email("Invalid email"),
address: z.object({
firstName: z.string().min(1, { message: "First Name is required" }),
lastName: z.string().min(1, { message: "Last Name is required" }),
...
}),
});
<UForm
:state="formData"
:schema="schema"
@submit="onSubmit"
>
<checkoutAccount v-model="formData.email" />
<formsAddress
v-model:firstName="formData.address.firstName"
v-model:lastName="formData.address.lastName"
v-model:street="formData.address.street"
v-model:addressDetails="formData.address.addressDetails"
v-model:city="formData.address.city"
v-model:postalcode="formData.address.postalcode"
v-model:country="formData.address.country"
/>
Any ideas what I'm doing wrong?
added demo here https://stackblitz.com/edit/nuxt-ui-5rrpvr?file=app.vue,components%2FaddressForm.vue
thanks, gregor