getServerSideProps() 未使用组件运行

Posted

技术标签:

【中文标题】getServerSideProps() 未使用组件运行【英文标题】:getServerSideProps() not running using component 【发布时间】:2021-09-04 02:38:46 【问题描述】:

我正在使用 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 始终未定义。

【问题讨论】:

我不确定,但我相信 getServerSideProps 仅适用于 pages 文件夹下的 Components。 你在BansList组件中没有正确访问props,应该是:const BansList = ( listName, bans ) 【参考方案1】:

getServserSideProps 仅适用于页面级别,不适用于组件级别。你必须使用pages/下的页面组件

更多信息在这里:https://nextjs.org/docs/basic-features/data-fetching#getserversideprops-server-side-rendering

【讨论】:

以上是关于getServerSideProps() 未使用组件运行的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的IndexPage中得到getServerSideProps的结果?

getServerSideProps 不使用导入更新数据

Nextjs 中使用 getServerSideProps 进行动态路由

为啥 NextJS 中的 ApolloGraphQL 示例使用 getStaticProps 而不是 getServerSideProps

在 NextJs 中如何使用更改事件更改 getServerSideProps

如何使用 typescript、next-redux-wrapper、getServerSideProps?