NextJS: Статический экспорт компонентов высокого порядка.HoC срабатывает один раз и останавливается во время путешествия по маршрутам в приложении - PullRequest
0 голосов
/ 15 февраля 2019

Я не могу точно понять, что происходит в моем коде.

Я использую базовую маршрутизацию из NextJS со страницами в папке pages для доставкистраниц моего приложения, и эти страницы оборачиваются тривиальным компонентом высокого порядка страниц.

const Page = (PageContent, PageTitle) => {

    PageTitle = PageContent.name

    return (
        class PageHoC extends React.Component {
            static contextType = GlobaleContext
            static propTypes = {
             PageTitle: PropTypes.string,
            }
            static async getInitialProps () {
                return {PageTitle}
            }

            componentDidMount () {
                const {state, dispatch} = this.context
                let {darkFilter} = state
                darkFilter = false
                dispatch({type: 'unset_filter', payload: {darkFilter}})

            }

            render () {
                let {PageTitle} = this.props
                const {state} = this.context
                let {darkFilter} = state
                return (
                    <>
                        <Head>
                            <title>
                                Page Title - {PageTitle}
                            </title>
                            {darkFilter ? <style>{` html { background-color: black; transition-duration: 1.2s; }
                        `}</style> : <style>{`
                        html { background-color: white; transition-duration: 1.2s; }
                        `}</style>}
                        </Head>
                        <Layout>
                            <PageContent PageTitle={PageTitle} />
                        </Layout>
                    </>

                )
            }
        }
    )
}

И хотя это работает с "npm run dev", с SSR.Page HoC эффективно переносит имя из своего дочернего функционального компонента в мою голову, поэтому я получаю правильный PageTitle.

Но когда я экспортирую свой сайт на статическую страницу с помощью "npm run build" или "export"Стандарт NextJS conf, High-o-comp страницы срабатывает только один раз при загрузке страницы, если вы делаете новый HTTP-запрос.

Я имею в виду.Когда я перемещаюсь по страницам с компонентом Link из NextJS, я полностью теряю реквизиты PageTitle, полученные от моего High-o-comp.

TL; DR: HoC срабатывает по запросу http.Нет на странице навигации по ссылке.

Любая помощь?:( Я чувствую, что мне чего-то не хватает ни в HoC, ни в статическом экспорте.

...