reactjs - 如何将 Material UI v5 连接到 Next JS v12?
问题描述
最近,Material UI 5 发布了。_document.js
以前(在 Material UI 4 中),我曾经通过修改和来连接它_app.js
。Material UI 5 也一样吗?
用于 MUI v4
_app.js
import CssBaseline from '@material-ui/core/CssBaseline';
import {ThemeProvider} from '@material-ui/core/styles';
class MyApp extends App {
render() {
const {Component, pageProps, router} = this.props;
return (
<ThemeProvider>
<CssBaseline />
<Component {...pageProps}/>
</ThemeProvider>
)
}
}
export default MyApp
用于 MUI v4
_document.js
import Document, {Html, Main, NextScript} from "next/document";
import { ServerStyleSheets } from '@material-ui/core/styles';
export default class MyDocument extends Document {
static async getInitialProps(ctx) {
const initialProps = await Document.getInitialProps(ctx);
let props = {...initialProps};
return props;
}
render() {
return (
<Html>
<body>
<Main/>
<NextScript/>
</body>
</Html>
);
}
}
MyDocument.getInitialProps = async (ctx) => {
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 register rendering finish.
styles: [...React.Children.toArray(initialProps.styles), sheets.getStyleElement()],
};
};
我想问的是:我应该以同样的方式将它连接到 MUI v5 吗?
也许有更优雅的方式来做到这一点?
解决方案
如果它只是您要从@materail-ui/core/styles
中导入的 CSS,您可以直接在您的_App.js
with...中直接导入 CSS。
import '@materail-ui/core/styles/someFilename.css'
(from
不需要)并且应该可以从那里在您的应用程序中的任何地方访问它。
推荐阅读
- javascript - antd table如何固定第一行
- python - 如果条件无法正常工作且计数器未更新
- python - Python 字典 has_key
- spring-boot - 如何模拟 ResponseEntity方法
- java - 允许变量影响循环中的语句数
- java - 对Java中的偶数索引位置求和
- android - 如何使用存储库设计清除 android mvvm 中的 rxJava 一次性用品?
- android - 将 Unity 模块集成到 Android 模块时避免版本冲突
- azure - 在 Office 365 中安装应用程序时出错:AADSTS650051:应用程序“CLIENT_ID”正在请求无效或过期的权限
- java - 当我完成推送我的项目时,它会报告“java.lang.NoSuchMethodError: org.springframework.beans.factory.support.RootBeanDefinition.setSingleton(Z)V”