Nextjs : Error: `headers` was called outside a request scope. 是指在服务器组件之外调用headers吗?

export function SignIn({
  provider,
  ...props
}: { provider?: string } & React.ComponentPropsWithRef<typeof Button>) {
  return (
    <form
      action={async () => {
        "use server";
        console.log("provider", provider);
        await signIn(provider);
      }}
    >
      <Button {...props}>Sign In</Button>
    </form>
  );
}

image.png

log 日志

 GET / 200 in 135ms
provider undefined
 ⨯ Error: `headers` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context
    at signIn (components\auth-components.tsx:13:20)
  11 |         "use server";
  12 |         console.log("provider", provider);
> 13 |         await signIn(provider);
     |                    ^
  14 |       }}
  15 |     >
  16 |       <Button {...props}>Sign In</Button> {
  page: '/'
}
 POST / 500 in 927ms
 ○ Compiling /favicon.ico ...
 ✓ Compiled /favicon.ico in 702ms (

问题

错误好像是说 headers 方法本应该在服务器组件中 调用,然而却request请求外部调用, 好像是说在客户端组件中被调用?
但是从代码来看 已经 use server 声明为服务器组件了, 为什么还会报错?
https://nextjs.org/docs/messages/next-dynamic-api-wrong-context

阅读 350
1 个回答
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏