Как передать дополнительные данные в getserversideprops с другой страницы в Nextjs?

#reactjs #next.js #server-side-rendering

#reactjs #next.js #рендеринг на стороне сервера

Вопрос:

Я хочу перейти projectID с предыдущей страницы (/projects ) на ( /project/[projectName] ) . Поэтому, чтобы получить сведения о проекте, я должен запустить конечную точку API с помощью 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/param prop будет иметь доступ к ProjectName, но не к ProjectID .

Ответ №1:

Поскольку serverSideProps будет запускаться при каждой загрузке страницы, вы не сможете передавать данные с одной страницы на другую.

Что вы можете сделать, это либо передать данные с помощью useContext, либо, если это общие данные, которые вы собираетесь использовать на всех своих страницах, вы можете получить их непосредственно на _app.js и передайте его для всех дочерних компонентов.

Это пример использования useContext.

Это документы, извлекаемые на _app.js . (проверьте прокомментированный код)

Вы даже можете объединить оба метода и установить данные на _app.js и использовать его на любой странице или компоненте.