【发布时间】:2022-01-10 19:25:26
【问题描述】:
在我的索引页面中是这样的:
function Index({posts}) {
console.log(posts);
return (
<div>
Homepage
{/* {posts && posts.length > 0 && posts.map(post => <h1 key={post._id}>{ post.title}</h1>)} */}
</div>
)
}
Index.getInitialProps = async ctx => {
try {
const res = await axios({
method: "GET",
url: 'https://jsonplaceholder.typicode.com/posts'
})
return {posts: res.data}
} catch (error) {
return {errorLoading: true}
}
}
export default Index;
console.log(res.data) 工作成功。但我只得到console.log(posts) undefined。为什么?
【问题讨论】:
-
您在哪里记录 res.data?表面上看起来不错,假设您是在 nextjs 日志中而不是在浏览器中阅读日志
-
我是 next.js 的初学者。如何在浏览器中显示您所说的内容?
-
在这段代码中,如果出现网络错误——
axios引发的异常——那么Index将被posts: undefined调用,请检查这是否不是您的情况。将Index更改为Index({posts, errorLoading})并添加console.log(errorLoading) -
getInitialProps仅在服务器端渲染运行,而不是在加载页面时在浏览器中运行。你在哪里读日志?在浏览器中,还是在运行服务器的终端中输出 nextjs? -
我这样做是他的代码。那里我没有写日志
标签: javascript reactjs next.js server-side-rendering