reactjs - Bagaimana cara melewatkan Komponen Nextjs dengan properti kustom sebagai Children
Untuk menambahkan properti Auth ke komponen saya. Saya telah membuat sebuah antarmuka
interface AuthAppProps extends Omit<AppProps, "Component"> {
Component: AppProps["Component"] & { Auth: boolean };
}
Agar saya bisa tampil
const App: React.FC<AuthAppProps> = (props) =>{
const {
Component,
pageProps: { session, ...pageProps },
} = props;
return (
<SessionProvider session={session}>
{Component.Auth ? (
<AuthGuard>
<Component {...pageProps} />
</AuthGuard>
) : (
<Component {...pageProps} />
)}
</SessionProvider>
);
}
Saya ingin memindahkan logika pengecekan ini ke komponen lain yang adalah
const AuthProvider: React.FC<AuthProviderProps> = (
props: AuthProviderProps
) => {
const { children: Component } = props;
if (Component.Auth) {
return <AuthGuard>{Component}</AuthGuard>;
} else {
return <>{Component}</>;
}
};
Agar saya bisa melakukannya
<SessionProvider session={session}>
<AuthProvider>
<Component {...pageProps} />
</AuthProvider>
</SessionProvider>
Tapi karena <Component {...pageProps} /> hanya diteruskan sebagai Elemen React, bukan sebagai tipe kustom saya. Ini memberi saya error bahwa
Type 'Element' is not assignable to type '(NextComponentType<NextPageContext, any, {}> & { Auth: boolean; }) & ReactNode'Bagaimana saya bisa mengakses Auth untuk komponen saya ketika dipassing sebagai children? Apakah itu mungkin?
Perbarui
interface AuthProviderProps{
children: AuthAppProps
}