На самом деле мой плохой в комментариях. Да, HOCs был бы прекрасным способом приблизиться к этому. getInitialProps
доступен только для компонентов страницы, при условии, что вне этого компонента нет HOC. Теперь, когда у вас есть HOC, getInitialProps
будет доступен для него, но теперь это не ваш фактический компонент страницы! Следовательно, вы должны вручную вызвать этот метод из этого HOC, и это будет выглядеть так:
import React, {Component, Fragment} from 'react'
import PropTypes from 'prop-types'
const withUserLayout = (child: Child) => {
return class WithUserLayout extends Component {
static async getInitialProps(ctx) {
let pageProps = {};
try {
if (Child.getInitialProps) {
pageProps = await Child.getInitialProps(ctx);
}
} catch (err) {
throw new Error(`Cannot invoke getInitalProps of ${Child.displayName}`, err.stack);
}
return pageProps;
}
render() {
// Rendering
}
}
}
Для дальнейшего ознакомления, пожалуйста, взгляните на этот фрагмент кода