typescript 使用ZOD在混音中实现多个窗体

ryevplcw  于 2023-01-03  发布在  TypeScript
关注(0)|答案(1)|浏览(132)

如何使用zod在混音中处理多个表单?:
假设我想获得一些名为“_intent”的输入值,并根据该值解析正确的表单数据。
我面临的问题是,我会收到错误,因为不是所有表单都发送相同的formData...

wlzqhblo

wlzqhblo1#

最后我做了这个:

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
  }

相关问题