如何解决尝试使用SWRNext.js提取API时出错
import useSWR from "swr";
const fetcher = url => fetch(url).then(res => res.json());
export default function App() {
const { data,error } = useSWR(
"https://api.github.com/repos/vercel/swr",fetcher
);
if (error) return "An error has occurred.";
if (!data) return "Loading...";
return (
<div>
<h1>{data.name}</h1>
<p>{data.description}</p>
<strong>{data.subscribers_count}</strong>{" "}
<strong>{data.stargazers_count}</strong>{" "}
<strong>{data.forks_count}</strong>
</div>
);
}
但是,当我使用自定义API并更新要呈现的属性({data.id}
,{data.title}
...)时,我收到“发生了错误”。
如果我删除条件退货,我会得到“数据未定义”:
未处理的运行时错误 TypeError:数据未定义
我在项目的其他部分使用了我的API,没有任何问题。
解决方法
我个人像this example
useRequest.js:
ARP
sample.jsx:
import useSWR from 'swr'
import axios from 'axios'
export default function useRequest(request,{ initialData,...config } = {}) {
return useSWR(
request && JSON.stringify(request),() => axios(request || {}).then(response => response.data),{
...config,initialData: initialData && {
status: 200,statusText: 'InitialData',headers: {},data: initialData
}
}
)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。