Имя класса пользовательского интерфейса материала не соответствует - PullRequest
0 голосов
/ 06 мая 2020

Я знаю, что есть много ответов, но в моем случае это

1) У меня уже был проект, работающий отлично. Я взял его за образец, чтобы сделать еще один, и теперь у меня проблема несоответствия стилей и неправильного рендеринга стилей.

2) Это не проблема на реальном сервере!

Есть идеи, где искать? Или что не так?

1 Ответ

0 голосов
/ 06 мая 2020

Оказывается, я забыл добавить файл _document.jsx, который я сделал ранее, у которого есть все необходимые настройки, чтобы заставить его работать. Любой, кто наткнется на это, может просто вставить следующее содержимое в файл _document.jsx внутри каталога страниц (создать его, если его не существует):

import React from 'react'
import Document, { Html, Head, Main, NextScript } from 'next/document'
import { ServerStyleSheets } from '@material-ui/styles'
import { createMuiTheme, responsiveFontSizes } from '@material-ui/core/styles'

const theme = responsiveFontSizes(createMuiTheme())

class MyDocument extends Document {
    render() {
        return (
            <Html>
                <Head>
                    <meta charSet="utf-8" />
                    <link href="https://fonts.googleapis.com/css?family=Montserrat&display=swap" rel="stylesheet"/>
                    <meta
                        name="viewport"
                        content="minimum-scale=1, initial-scale=1, width=device-width, shrink-to-fit=no"
                    />
                    <meta name="theme-color" content={theme.palette.primary.main} />

                    <style jsx global>
                        {`

                        `}
                    </style>
                </Head>
                <body>
                <Main />
                <NextScript />
                </body>
            </Html>
        )
    }
}

MyDocument.getInitialProps = async ctx => {
    // Render app and page and get the context of the page with collected side effects.
    const sheets = new ServerStyleSheets()
    const originalRenderPage = ctx.renderPage

    ctx.renderPage = () =>
        originalRenderPage({
            enhanceApp: App => props => sheets.collect(<App {...props} />)
        })

    const initialProps = await Document.getInitialProps(ctx)

    return {
        ...initialProps,
        // Styles fragment is rendered after the app and page rendering finish.
        styles: [
            <React.Fragment key="styles">
                {initialProps.styles}
                {sheets.getStyleElement()}
            </React.Fragment>
        ]
    }
}

export default MyDocument
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...