TypeError:无法将未定义或空转换为对象 | NextAuth
2022-03-24
817
我正在尝试使用 Nextauth 登录。这是我的代码:
import { getProviders, signIn as SignIntoProvider} from "next-auth/react";
function signIn({ providers }) {
return (
<>
{Object.values(providers).map((provider) => (
<div key={provider.name}>
<button onClick={() => SignIntoProvider(provider.id)}>
Sign in with {provider.name}
</button>
</div>
))}
</>
);
}
export async function getServerSideProps() {
const providers = await getProviders();
return {
props: {
providers
}
}
}
export default signIn;
但是我收到此错误:
我看到有人遇到了与我类似/相同的错误。我尝试了所有建议的解决方案。这是问题:
服务器错误:TypeError:无法将未定义或 null 转换为对象
当我尝试使用绿色钩子的解决方案时,什么都没有发生。甚至没有错误。
其他的也不起作用。
我做错了什么??? 祝一切顺利。
2个回答
对我来说,这很有帮助:
import { SessionProvider } from "next-auth/react";
export default function App({
Component,
pageProps: { session, ...pageProps },
}) {
return (
<SessionProvider session={session}>
<Component {...pageProps} />
</SessionProvider>
);
}
Bohdan
2022-12-22
添加如下空值检查:
function signIn({ providers }) {
return (
<>
{providers && !!Object.keys(providers).length && Object.values(providers).map((provider) => (
<div key={provider.name}>
<button onClick={() => SignIntoProvider(provider.id)}>
Sign in with {provider.name}
</button>
</div>
))}
</>
);
}
Balagoni Harish
2022-03-24