【问题标题】:Server Error : TypeError: Cannot convert undefined or null to object服务器错误:TypeError:无法将未定义或 null 转换为对象
【发布时间】:2021-12-12 02:24:11
【问题描述】:

这是代码

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

我在从官方网站粘贴 NextAuth.js 示例代码时收到此错误。我有最新版本的 Node.js 和 Next.js。

你可以在这里找到完整的源代码https://github.com/aadipoddar/instagram-react

【问题讨论】:

标签: javascript node.js reactjs next.js next-auth


【解决方案1】:

将您的 NEXTAUTH_URL 正确配置为您的客户端 url,例如

NEXTAUTH_URL=http://localhost:3000

【讨论】:

    【解决方案2】:

    这是map 函数在providers 实际具有任何值之前被调用的结果。
    您可以使用条件渲染来避免此类问题。

    试试这个:

    {providers && providers.length && Object.values(providers).map((provider) => ( ...
    

    您可以通过将其存储在变量中来使其看起来更好。

    像这样:

    function signIn({ providers }) {
        const checkProviders = (
           providers &&
           providers.length
        );
    
        return (
            <>
                {checkProviders && Object.values(providers).map((provider) => (
                    <div key={provider.name}>
                        <button onClick={() => SignIntoProvider(provider.id)}>
                            Sign in with {provider.name}
                        </button>
                    </div>
                ))}
            </>
        )
    }
    

    【讨论】:

    • 我尝试了以下代码,但我现在得到一个不同的错误,这是错误的图像photos.app.goo.gl/oa8kH455yAsdmCLx6
    • 这与您的原始问题无关。您收到有关从 API 获取的错误。
    猜你喜欢
    • 2020-12-22
    • 2021-01-23
    • 2022-10-18
    • 1970-01-01
    • 2023-02-21
    • 1970-01-01
    • 1970-01-01
    • 2022-12-17
    • 2020-08-04
    相关资源
    最近更新 更多