我是Typescript的新手,我看了一个使用next-auth的教程,但是自从我使用Typescript的教程之后,我在使用getProviders函数时遇到了这个错误。x1c 0d1x的数据
的正如你所看到的,当我尝试更新状态时,它显示错误。原因是什么,我该如何解决?谢谢你的好意
vatpfxk51#
您定义的状态推断它将仅为null。您需要为该状态添加类型,例如useState<T>。代替T,你可以复制粘贴响应的类型
useState<T>
eni9jsuy2#
这是你的useState
useState
const [providers,setProvider]=useState(null)
字符串如果将鼠标悬停在providers上,则其类型称为
providers
const providers: null
型但是,您正在使用getProviders设置提供程序。这是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);
型
2条答案
按热度按时间vatpfxk51#
您定义的状态推断它将仅为null。您需要为该状态添加类型,例如
useState<T>
。代替T,你可以复制粘贴响应的类型eni9jsuy2#
这是你的
useState
字符串
如果将鼠标悬停在
providers
上,则其类型称为型
但是,您正在使用
getProviders
设置提供程序。这是getProviders
的类型型
你应该像这样设置状态:
型