我从create-next-app开始创建了一个项目。在Blog.js页面中,我尝试使用getStaticProps()
函数从https://jsonplaceholder.typicode.com/posts获取。
我使用了指南https://nextjs.org/docs/basic-features/data-fetching/get-static-props#using-getstaticprops-to-fetch-data-from-a-cms。一旦所有内容都实现了,我在浏览器中打开页面,它会告诉我
Server Error
TypeError: Cannot read properties of undefined (reading 'map')
这是密码
function Blog({ posts }) {
return (
<ul>
{posts.map((post) => (
<li>{post.title}</li>
))}
</ul>
)
}
export async function getStaticProps() {
const res = await fetch('https://jsonplaceholder.typicode.com/posts')
const posts = await res.json()
return {
props: {
posts,
},
}
}
export default Blog
2条答案
按热度按时间bq3bfh9z1#
你在你想要呈现的组件中编写函数。2唯一的情况是当你基于某个参数创建动态URL时,在这种情况下你将混合使用getStaticProps和getStaticPages。
试着这样做:
1.将博客组件写入文件(Blog.tsx/jsx):
1.转到您将呈现此组件的页面(例如,它可能是一个index.tsx/jsx)
Ps.:当你在使用map的时候,千万不要忘记key属性;希望它能帮助你,来自巴西的拥抱。
0mkxixxg2#
我认为答案是在Page文件夹之外实现Blog组件。