Next.js доступ к реквизитам страницы внутри метода getServerSideProps

#javascript #next.js

#javascript #next.js

Вопрос:

Я передаю некоторые свойства на _app странице.

 <PageWrapper>
  <Component someProps={someProps} />
  <GlobalCSS />
 </PageWrapper>
  

Возможно ли получить доступ к этим реквизитам в методе getServerSideProps на каждой странице?

 export const getServerSideProps: GetServerSideProps = async context => {
  const data = await fetchData(someProps); // ??
  
  return { props: { data } };
};
  

Ответ №1:

Допустим, у вас есть страница demo с

 // ...
export const getServerSideProps = async () => {
  const demo = await fetch('/api/demo');

  return {
    props: {
      demo,
    }
  };
};
  

и где-то в вашем другом дочернем компоненте вы можете получить к нему доступ

 export const MyComponent = () => {
  const { components } = useRouter();

  console.log(components['demo'].props.pageProps);
};
  

Внимание! Это недокументированный и хакерский способ.

Ответ №2:

Вы можете проверить этот следующий документ JS, извлекающий данные и используемый. Я надеюсь, что это полезно для вас!

Комментарии:

1. Мне не нужно извлекать данные, мне нужно получить доступ к реквизитам, которые я предоставил на странице _app.