我正在用Next.js制作一个小型Web应用程序,我不知道为什么,但是当我使用组件时,getServerSideProps()
没有运行。我以前在/pages
的页面上有以下代码,但我将其移动到作为组件使用。
export const getServerSideProps = async () => {
console.log("in getServerSideProps") // never shows
let bans = await fetch('http://localhost:3000/api/get_bans').then((res) => {
return res.json();
})
return {
props: { bans: bans }
}
}
const BansList = (listName, bans) => {
bans = bans.bans
console.log(bans) // undefined
return (
<h1>test</h1>
)
}
我已经把代码剥离了,以方便地显示错误所在。当我使用它作为组件时,getServerSideProps
没有运行,所以bans
总是未定义的。
2条答案
按热度按时间piv4azn71#
getServserSideProps
只在页面级别工作,而不是组件级别。您必须使用pages/
下的页面组件
更多信息:https://nextjs.org/docs/basic-features/data-fetching#getserversideprops-server-side-rendering
tag5nh1u2#
不仅如此,你应该使用花括号(即析构)来使用从getServerSideProps扩展的props。