TanStackT
TanStack9mo ago
4 replies
hurt-tomato

Validator schema as subset of default values

So I've a form where I temporarily keep some values, which are set in my default values but on submit, they are discarded by the zod schema.

For example:

  const product = {id: 0, name: "Beef burger", userId: currentUser.id, user: {id: currentUser.id, name: currentUser.name } }

const saveProductSchema = z.object({ id: z.number(), name: z.string().min(1).max(50), userId: z.number().min(1) });

  const form = useAppForm({
    defaultValues: product,
    validators: {
      onSubmit: saveProductSchema,
    },
    onSubmit: async ({ value }) => {
      // submit logic.

    },
  });


In current implementation, it'll give error because schema has user missing. I need user object in my form for displaying purposes so I can't just cast defaultValues to schema type.
Was this page helpful?