next.js getServerSideProps()未使用组件运行

eagi6jfj  于 2023-04-20  发布在  其他
关注(0)|答案(2)|浏览(140)

我正在用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总是未定义的。

piv4azn7

piv4azn71#

getServserSideProps只在页面级别工作,而不是组件级别。您必须使用pages/

下的页面组件
更多信息:https://nextjs.org/docs/basic-features/data-fetching#getserversideprops-server-side-rendering

tag5nh1u

tag5nh1u2#

不仅如此,你应该使用花括号(即析构)来使用从getServerSideProps扩展的props。

相关问题