javascript - 尝试运行 NextJs 网站时,我在 _document.js 上收到错误消息
问题描述
我正在制作这个 NextJs 网站,在我运行yarn next dev之前一切都很好,现在我在 _document.js 上收到一条错误消息。这是我收到的信息:
服务器错误错误:元素类型无效:应为字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。您可能忘记从定义组件的文件中导出组件,或者您可能混淆了默认导入和命名导入。生成页面时发生此错误。任何控制台日志都将显示在终端窗口中。
import Document, { Head, Html, Main, NextScript } from 'next/document'
import { ServerStyleSheet } from 'styled-components'
export default class MyDocument extends Document {
static async getInitialProps(ctx) {
const sheet = new ServerStyleSheet()
const originalRenderPage = ctx.renderPage
try {
ctx.renderPage = () =>
originalRenderPage({
enhanceApp: (App) => (props) =>
sheet.collectStyles(<App {...props} />),
})
const initialProps = await Document.getInitialProps(ctx)
return {
...initialProps,
styles: (
<>
{initialProps.styles}
{sheet.getStyleElement()}
</>
),
}
} finally {
sheet.seal()
}
}
render() {
return (
<Html lang='en-GB'>
<Head>
<link href="https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@300;400;500;600;700&display=swap" rel="stylesheet"/>
</Head>
<body>
<Main />
<NextScript />
</body>
</Html>
);
}
}
解决方案
推荐阅读
- css - 如何在我的 Nuxt 应用程序中正确设置 bootstrap-vue?
- java - 微服务:实现 Saga
- xamarin.forms - 使用 Binding 从 CollectionView 的 ItemTemplate 调用时不会触发命令
- laravel - 使用旧版本 laravel 创建新项目时出错。我该怎么办?
- python - TF-Agents 错误:TypeError:两个结构不匹配:Trajectory vs. Trajectory
- vue.js - 如何使用 Nuxt 中间件重定向到外部站点?
- firebase - 如何从 Firebase 存储中检索视频?科特林
- leveldb - leveldb 禁用或阻止日志文件
- python - 在方法中缺少 1 个必需的位置参数
- drupal - 我可以为视图设置动态参数吗?