我已经从materialui (https://material-ui.com/guides/server-rendering/)的医生那里找到了解决方案,但我仍然不知道原因。
。
之后样式不会消失。
发布于 2022-08-25 07:47:53
如果您使用样式-组件,然后做以下工作,您是好的去!
步骤1: npm安装-保存-dev babel-插件样式-组件
步骤2:在下一个项目的根目录中创建一个文件.babelrc
步骤3:将以下代码粘贴到.babelrc文件:-
{
"presets": ["next/babel"],
"plugins": [["styled-components", { "ssr": true }]]
}步骤4:重新启动下一个服务器
发布于 2022-03-04 11:04:55
在_app.js中
function MyApp({ Component, pageProps }) {
useEffect(() =>{
const jssStyles = document.querySelector('#jss-server-side');
if(jssStyles){
jssStyles.parentElement.removeChild(jssStyles);
}
},[]);
return <Component {...pageProps} />
};然后在pages文件夹中打开_document.js:
import React from 'react';
import { ServerStyleSheets } from "@mui/styles";
import Document, { Html, Main, NextScript, Head } from "next/document";
export default class MyDocument extends Document{
render(){
return(
<Html lang="en">
<Head></Head>
<body>
<Main/>
<NextScript/>
</body>
</Html>
)
}
}
MyDocument.getInitialProps = async(ctx) =>{
const sheets = new ServerStyleSheets();
const originalRenderPage = ctx.renderPage;
ctx.renderPage = () =>{
return originalRenderPage({
enhanceApp: ( App ) => ( props ) => sheets.collect(<App { ...props}
/>)
})
};
const initialProps = await Document.getInitialProps( ctx);
return{
...initialProps,
styles:[
...React.Children.toArray(initialProps.styles) ,
sheets.getStyleElement(),
]
}
}https://stackoverflow.com/questions/67352231
复制相似问题