#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.