componentDidMount не работает на Next JS с использованием пользовательского _document. js - PullRequest
1 голос
/ 11 января 2020

Я работаю над прототипом для веб-приложения и выбрал Next JS, потому что хотел изучить его получше, но понимаю, что не использую его «стандартным» способом. Я начал с примера Next + Material-UI здесь: https://github.com/mui-org/material-ui/tree/master/examples/nextjs и все было хорошо.

Но сейчас я пытаюсь сохранить данные, используя sessionStorage, и я ' Мне трудно сделать эту работу без возможности использовать событие жизненного цикла componentDidMount на уровне страницы. Документация Next гласит, что проекты с пользовательским файлом _document. js не будут иметь метод componentDidMount на стороне клиента. Мой проект использует пользовательский файл документа из-за Material-UI. Похоже, он поддерживает рендеринг фреймворков css -in- js на стороне сервера.

Если мне не нужен рендеринг на стороне сервера, есть ли способ сохранить работоспособность Material-UI, но покончить с пользовательским файлом _document. js, чтобы я мог использовать componentDidMount?

1 Ответ

0 голосов
/ 11 января 2020

С вами все будет в порядке, используя sessionStorage и пользовательский документ

componentDidMount (и любой другой метод жизненного цикла) не работает только для _document.js, поскольку это не отображается клиентской стороне.

sessionStorage является частью window, поэтому вы сможете использовать его на любой другой странице / компоненте, используя жизненный цикл componentDidMount.

...