You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js应用升级Material UI V4至V5后_document.js元素类型无效错误

Next.js升级MUI V5后StylesProvider引发的元素类型无效错误修复

问题根源

你遇到的错误是因为MUI V5中StylesProvider不再从@mui/material导出,而是迁移到了@mui/styles包中,当前导入路径错误导致组件为undefined,触发了React的元素类型校验错误。

修复方案

1. 修正导入路径

将错误的导入代码:

import { StylesProvider, StyledEngineProvider } from '@mui/material'

替换为:

import { StylesProvider } from '@mui/styles'
import { StyledEngineProvider } from '@mui/material'

2. 确认依赖有效性

你的package.json已经包含@mui/styles依赖,版本与其他MUI包匹配,无需额外安装:

"@mui/styles": "^5.11.2",

3. 优化组件层级(可选)

MUI V5推荐将StyledEngineProvider放在最外层,确保样式引擎初始化顺序正确,调整后的代码结构如下:

<StyledEngineProvider injectFirst>
  <ConditionalWrapper
    condition={jss}
    wrapper={children => <StylesProvider jss={jss}>{children}</StylesProvider>}
  >
    <ConditionalWrapper
      condition={theme}
      wrapper={children => <ThemeProvider theme={theme}>{children}</ThemeProvider>}
    >
      {children}
    </ConditionalWrapper>
  </ConditionalWrapper>
</StyledEngineProvider>

核心说明

  • MUI V5对样式模块做了拆分:StylesProvider负责JSS样式的全局配置,归属于@mui/styles;StyledEngineProvider用于切换样式引擎(默认Emotion),仍在@mui/material中;
  • 错误提示中的“got: undefined”直接指向导入的组件不存在,优先检查V5的模块导出结构是否与你的导入路径匹配。

内容的提问来源于stack exchange,提问作者keerti

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 20:35:17