Closed3
Next.js@12.3.0+NextAuth.js+TypeScriptで_app.tsxをいじるときのTips
12.2までのNext.jsではNextAuth.jsをいれるとき_app.tsx
は以下のようにするだけでよかった.
import { SessionProvider } from 'next-auth/react'
import type { AppProps } from 'next/app'
import '../styles/globals.css'
function MyApp({ Component, pageProps }: AppProps) {
return (
<SessionProvider session={pageProps.session}>
<Component {...pageProps} />
</SessionProvider>
)
}
export default MyApp
しかし,12.3になってAppProps
の型定義が変わってしまい,pageProps.session
を取り出せなくなってしまった.
プロパティ 'session' は型 '{}' に存在しません。
解決策はすでにissueに上がっていた.AppProps
にgenericsを渡すだけでよい.
+ import { Session } from 'next-auth'
import { SessionProvider } from 'next-auth/react'
import type { AppProps } from 'next/app'
import '../styles/globals.css'
- function MyApp({ Component, pageProps }: AppProps) {
+ function MyApp({ Component, pageProps }: AppProps<{ session: Session }>) {
return (
<SessionProvider session={pageProps.session}>
<Component {...pageProps} />
</SessionProvider>
)
}
export default MyApp
Next.js的にはpageProps
はいらない子だから適宜自分たちで拡張しろよってことなのかなあ?
このスクラップは2024/04/22にクローズされました