如何使用Next.js服务器操作和React钩子表单向前端发送错误消息

sigwle7e  于 2023-10-18  发布在  React
关注(0)|答案(1)|浏览(132)

所以我有一个服务器操作函数,如下所示:

export const sendResetEmail = async (values: FieldValues) => {
  const user = await prismadb.user.findUnique({
    where: {
      email: values?.email,
    },
  });

  if (!user) {
    throw new Error("This email is not registered");
  }

现在,我想在前端访问该错误消息,以便可以使用setError函数将其链接到react hook表单的输入字段,如下所示:

const formSubmit: SubmitHandler<FieldValues> = async (values) => {
    setIsLoading(true);

    try {
      await sendResetEmail(values);
    } catch (error) {
      setError("email", {
        type: "manual",
        message: error as string,
      });
    } finally {
      setIsLoading(false);
      reset();
    }
  };

但它不起作用。如果我使用API路由,我可以简单地这样做:

return new NextResponse(
      JSON.stringify({ message: "This email is not registered" }),
      { status: 400, headers: { "Content-Type": "application/json" } }
    );

但由于它是一个服务器操作,我不能返回NextResponse。我能在这里做什么?

3npbholx

3npbholx1#

也许你可以尝试返回promise rejection。return Promise.reject("your error message")

相关问题