首页 > 解决方案 > 如何从 Nextjs 中的另一个页面将附加数据传递给 getserversideprops?

问题描述

我想projectID从上一页(/projects) 转到 ( /project/[projectName])。因此,为了获取项目详细信息,我必须使用projectID.

从上一页传递 projectID 的正确方法是什么,以及如何在getServersideProps方法中访问它。

/project/[projectName]页面中,

export async function getServerSideProps(){
// Here i want to access the projectID sent from the previous page
const data = await fetchData();
return {
    props: data,
  };
}

Query/paramprop 将有权访问 projectName 但不能访问 projectID。

标签: reactjsnext.jsserver-side-rendering

解决方案


由于每次加载页面时 serverSideProps 都会运行,因此您无法将数据从一个页面传递到另一个页面。

您可以做的是使用 useContext 传递数据,或者如果它是您将在所有页面上使用的一般数据,您可以直接将其获取到 _app.js 并将其传递给所有子组件。

这是一个使用 useContext的示例。

这是在_app.js上获取的文档。(检查注释代码)

您甚至可以结合这两种技术并在 _app.js 上设置数据并在任何页面或组件上使用它。


推荐阅读