在与ZOD的混音中实现多个表单



如何使用zod来处理混音中的多个表单?:
假设我想获取一个名为"_intent"并根据值解析正确的表单数据。

我面临的问题是,我得到错误,因为不是所有的表单发送相同的formData…

最后我这样做了:

export const action = async ({ request }: ActionArgs) => {
const formData = await request.formData();
const allFormDataFields = Object.fromEntries(formData.entries());
// first extract the intent
const intent = allFormDataFields._intent as keyof typeof FormIntents;
if (intent === FormIntents.add_transaction) {
// now parse with relevant zod object
const result =
myZodObject.safeParse(allFormDataFields);
if (!result.success) {
return badRequest({
errorFields: result.error.flatten(),
});
}
// do stuff
} 
if(intent === "something else"){
// do other stuff
}

最新更新