【发布时间】:2019-07-18 22:29:24
【问题描述】:
我关注Next.js tutorial for fetching data
但与教程不同,我使用axios。问题是getInitialProps 没有得到我想要的数据。
代码如下:
import axios from "axios";
import Link from "next/link";
const Body = props => (
<div>
<h1>Shows</h1>
<ul>
{props.data.map(({ show }) => (
<li key={show.id}>
<Link as={`/p/${show.id}`} href={`/post?title=${show.title}`}>
<a>{show.name}</a>
</Link>
</li>
))}
</ul>
</div>
);
Body.getInitialProps = async function() {
const res = await axios.get("https://api.tvmaze.com/search/shows?q=batman");
const data = await res.data;
console.log(`Show data fetched. Count: ${data.length}`);
return {
data: data
};
};
export default Body;
对我来说,代码看起来不错,但错误 Unhandled Rejection (TypeError): Cannot read property 'map' of undefined 不断发生。
【问题讨论】:
-
您的 API 响应是否有任何错误?
-
刚刚在控制台顶部发现另一个错误,提示“Fetch API 无法加载.....对于 CORS 请求,URL 方案必须是“http”或“https”。”
标签: javascript reactjs axios next.js