使用Typescript配置next-auth getProviders错误

pprl5pva  于 2023-08-04  发布在  TypeScript
关注(0)|答案(2)|浏览(117)

我是Typescript的新手,我看了一个使用next-auth的教程,但是自从我使用Typescript的教程之后,我在使用getProviders函数时遇到了这个错误。
x1c 0d1x的数据



正如你所看到的,当我尝试更新状态时,它显示错误。原因是什么,我该如何解决?谢谢你的好意

vatpfxk5

vatpfxk51#

您定义的状态推断它将仅为null。您需要为该状态添加类型,例如useState<T>。代替T,你可以复制粘贴响应的类型

eni9jsuy

eni9jsuy2#

这是你的useState

const [providers,setProvider]=useState(null)

字符串
如果将鼠标悬停在providers上,则其类型称为

const providers: null


但是,您正在使用getProviders设置提供程序。这是getProviders的类型

function getProviders(): Promise<Record<LiteralUnion<BuiltInProviderType, string>, ClientSafeProvider> | null>


你应该像这样设置状态:

import { signIn, getProviders ,LiteralUnion,ClientSafeProvider} from "next-auth/react";
 import { BuiltInProviderType } from "next-auth/providers";

const [providers, setProvider] = React.useState<Record<
           LiteralUnion<BuiltInProviderType, string>,ClientSafeProvider > | null>(null);

相关问题