next.js [...下一个].js错误“'session.user'可能是'未定义'”,但是我能够访问www.example.com的值session.user.name

ygya80vv  于 2022-12-23  发布在  其他
关注(0)|答案(2)|浏览(152)

错误正在显示这---〉'session.user'是可能的'undefined'.但是我可以访问值session.user.name但是为什么这错误我不能到execute npm run build now
Header.tsx

const { data: session } = useSession()

          ...

          <div 
              onClick={() => {!session? signIn(): signOut()}}
              className='items-center justify-center px-2 text- 
              white cursor-pointer hover:ring-1 hover:ring-white '>
               <p className='font-normal '>{!session ?   "sign in" 
               : `Hello ${session.user.name}`}</p>
                                 ^^^^^
               <h3 className='-mt-1 font-bold'>Account & Lists</h3>
            </div>

[下一页].js

import NextAuth from "next-auth"
import GoogleProvider from 'next-auth/providers/google'

export const authOptions = {
  providers: [
    // OAuth authentication providers...
    GoogleProvider({
      clientId: process.env.GOOGLE_ID,
      clientSecret: process.env.GOOGLE_SECRET,
      secret: process.env.NEXTAUTH_SECRET,
    })
  ]
}

export default NextAuth(authOptions)
fsi0uk1n

fsi0uk1n1#

{会话&&会话.用户?Hello ${session.user.name}:“登录”}
我解决了这个问题,这里我只需要检查session和session.user是否也为true

toiithl6

toiithl62#

const { data: session } = useSession()
const user = session ? session.user : null ;
    
    return (
          <div 
              onClick={() => {!user? signIn(): signOut()}}
              className='items-center justify-center px-2 text- 
              white cursor-pointer hover:ring-1 hover:ring-white '>
               <p className='font-normal '>{!user ?   "sign in" 
               : `Hello ${user.name}`}</p>
                                 ^^^^^
               <h3 className='-mt-1 font-bold'>Account & Lists</h3>
            </div>
    )

相关问题