错误:[next-auth]:`useSession` 必须包装在 <SessionProvider /> 中

Nad*_*era 1 javascript reactjs next.js next-auth

当我加载我的个人资料页面时,出现以下错误。页面在浏览器中加载正常,但我在终端中收到此错误。

Error: [next-auth]: `useSession` must be wrapped in a <SessionProvider />

所有子级都使用 SessionProvider 进行包装。

下面是我的layout.jsx文件。

import Provider from './components/Provider'
import Nav from './components/Nav'

import './globals.css'
import { Inter } from 'next/font/google'

const inter = Inter({ subsets: ['latin'] })

const RootLayout = ({ children }) => {
  return (
    <html lang="en">
      <body className={inter.className}>
        <Provider>
          <div className="main">
            <div className="gradient" />
          </div>

          <main className="app">
            <Nav />
            {children}
          </main>
        </Provider>
      </body>
    </html>
  )
}

export default RootLayout
Run Code Online (Sandbox Code Playgroud)

下面是我的Provider.jsx组件。

'use client'

import { SessionProvider } from 'next-auth/react'

const Provider = ({ children }) => {
  return <SessionProvider>{children}</SessionProvider>
}

export default Provider
Run Code Online (Sandbox Code Playgroud)

下面是我的ProfilePage 的page.jsx 。

'use client'

import { useSession } from 'next-auth/react'

const ProfilePage = () => {
  const { data: session } = useSession({
    required: true,
  })

  return (
    <section>
      <h1 className="head_text text-center">Profile</h1>
      <p>You are logged in as, {session?.user?.email}</p>
    </section>
  )
}

export default ProfilePage
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。

谢谢。

Nad*_*era 5

我能够通过清除 .next 文件夹缓存来解决该问题。