Пользовательский интерфейс материала + следующий js: ящик - PullRequest
0 голосов
/ 27 марта 2020

У меня проблема с реализацией Drawer UI Material в моем проекте React Next js.

Проблема в том, что при перезагрузке страницы в навигаторе стили ящика и Панель приложений cra sh. Этого не произошло, когда я перезагрузил сервер, только при перезагрузке страницы.

enter image description here

В настоящее время я понятия не имею, что Я должен попытаться решить эту проблему, и я не знаю, почему это происходит, потому что единственное, что я могу сделать, это распечатать и вставить пример материала UI https://material-ui.com/components/drawers/#drawer в компонент макета , а не на странице.

Ответы [ 2 ]

1 голос
/ 25 апреля 2020

Я также столкнулся с этой проблемой и нашел решение.

Проблема связана с тем, что Mui (MakeStyles) берет ваши CSS имена классов и пытается создать уникальные имена, чтобы избежать коллизий.

Вы можете прочитать об этом здесь: https://material-ui.com/styles/advanced/#next - js

Когда мы выполняем экспорт stati c, предварительно обработанный файл html ссылается на класс имя, которое отличается от имен классов, определенных в папке / _next /.

В вышеупомянутой документации упоминается, что имена классов являются определяющими c, если выполняются три условия (см. выше). Мое решение состояло в том, чтобы просто назвать мою таблицу стилей чем-то, начинающимся с «Mui». Тогда имена классов совпадают как в предварительно отрисованных html, так и в JS в / _next /.

    const useStyles = makeStyles(theme => (
          {
              ...
          }), 
          {
              name: "MuiCustomStyle"
          });

Я уверен, что это не «правильное» решение, но оно решило проблему для меня.

1 голос
/ 27 марта 2020

Это потому, что Next JS использует SSR. В документации по пользовательскому интерфейсу материала есть часть, полностью посвященная NEXT JS:

https://material-ui.com/styles/advanced/#next - js

Или, если хотите, вы можете проверить репозиторий материалов (см. _app. js и _document. js)

https://github.com/mui-org/material-ui/tree/master/examples/nextjs

...