我正在使用NextJS应用程序路由器和shadcn/ui(使用react-hook-form和zod)。
在我见过的所有代码示例中,表单操作接收formData。但根据我的经验,formData可能并不总是包含所有字段,这会给我带来一些麻烦(解决方案是添加隐藏的输入字段)。
那么发送formData对象有什么好处呢?为什么不直接通过react-hook-form api 使用 form.getValues() 发送表单值并保存所有这些混乱。
export async function serverAction(formData: FormData)
VS
export async function serverAction(data: z.infer<typeof schema>)
表格数据:
RHF + 佐德:
对于中型以上的项目,我经常最终使用 rhf + zod,因为就长期开发经验而言,它对我来说效率更高。
对于任何要完成任务的小项目,我使用 next 的原生形式。