NextJS使用SWR请求API时出现类型错误问题求助
解决NextJS中使用SWR出现的
default is not a function错误 错误原因
该错误源于SWR v2版本将默认导出改为了命名导出,你的代码使用了旧版的默认导入写法,与新版本不兼容。
解决方案
方案一:适配SWR v2的命名导入
将默认导入改为命名导入即可:
import { useSWR } from "swr"; const fetcher = (url: string) => fetch(url).then((res) => res.json()); export default function Home(){ const { data, error, isLoading } = useSWR( "https://api.github.com/repos/vercel/swr", fetcher ); return <></> }
方案二:降级至SWR v1版本
若想继续使用默认导入写法,可降级到SWR v1.x版本,执行以下命令:
npm install swr@1.x # 或使用yarn yarn add swr@1.x
补充说明
SWR v2发布后调整了导出方式,这是新旧版本最主要的不兼容点。如果需要使用v2的新特性,优先选择方案一的命名导入写法。
内容的提问来源于stack exchange,提问作者Ashutosh Dash
相关产品推荐
相关产品推荐

