我是Next.js的新手,我喜欢将我的API函数拆分到一个名为services
的单独文件夹中。我尝试基于此topic编写一些代码,但它不起作用。我认为我的API函数永远不会调用。我得到这个错误:
Unhandled Runtime Error
TypeError: data is undefined
字符串
这是我的代码index.tsx
文件:
import ShowResult from '../components/showResult'
export default function Home() {
return (
<div className='container mx-auto'>
<ShowResult />
</div>
);
}
型components/showResult.tsx
文件:
import getUserRepos from '../services/api.service'
export async function getStaticProps() {
const data = await getUserRepos();
if (!data) {
return {
notFound: true,
};
}
return {
props: {
data,
},
};
}
export default function ShowResult({data}) {
return (
<div className=''>
<p>Result :</p>
<ul>
{data.map((repo) => (
<li key={repo.id}>{repo.name}</li>
))}
</ul>
</div>
)
}
型services/api.service.ts
文件:
export async function getUserRepos() {
const response = await fetch(
`https://api.github.com/users/abdurrahmanseyidoglu/repos`
);
const data = await response.json();
return data;
}
型
a如何从我的API服务函数中获取数据?
1条答案
按热度按时间vptzau2j1#
首先,您需要将
getStaticProps
移动到您的页面,然后将数据作为 prop 传递给ShowResult组件。然后更改ShowResult
组件以接受数据作为 prop 并呈现它。试试这个:
pages/index.tsx:
字符串
components/ShowResult.tsx:
型
services/API.service.ts(未更改):
型