Я создал новое приложение с Next.js 9.3.1
.
В старом приложении с SSR. Я могу getInitialProps
работать в компонентах HO C (не на странице), поэтому я могу получать данные с сервера в компоненте HO C и со страницы. Вот так https://gist.github.com/whoisryosuke/d034d3eaa0556e86349fb2634788a7a1
Пример:
export default function withLayout(ComposedComponent) {
return class WithLayout extends Component {
static async getInitialProps(ctx) {
console.log('ctxlayout fire');
const { reduxStore, req } = ctx || {}
const isServer = !!req
reduxStore.dispatch(actions.serverRenderClock(isServer))
if (isServer) await reduxStore.dispatch(navigationActions.getListMenuAction('menu'));
// Check if Page has a `getInitialProps`; if so, call it.
const pageProps = ComposedComponent.getInitialProps && await ComposedComponent.getInitialProps(ctx);
// Return props.
return { ...pageProps }
}
render() {
return (
<div className="app__container">
<Header />
<Navbar />
<ComposedComponent {...this.props} />
</div>
)
}
}
}
Но в новой версии Next. js, с SSG не могу или не нашел способ использования getStaticProps
или getServerSideProps
в компонентах HO C. Если я использую getInitialProps
в HO C (макет), я не могу использовать getStaticProps
или getServerSideProps
в дочернем.
Итак, как я могу использовать getStaticProps
или getServerSideProps
для извлечения данных и предварительный рендеринг как в компоненте HO C, так и на странице?
Спасибо.