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

Vite+React项目添加Slide组件后createTheme_default报错,回滚未解决

解决React+Vite项目中createTheme_default is not a function报错问题

问题复盘

使用Vite+React搭建的项目,原本配置RTL主题后运行正常,添加Slide组件后出现Box.js:5 Uncaught TypeError: createTheme_default is not a function错误,即便通过Git回滚代码,错误依然存在。

核心原因及解决办法

1. 检查createTheme导入正确性

确认createTheme的导入路径符合MUI v5规范,正确导入语句应为:

import { createTheme } from '@mui/material/styles';

若误用旧版@material-ui/core或其他错误路径,会导致函数引用失效。

2. 清理依赖缓存并重装

回滚代码仍报错,大概率是依赖缓存异常,执行以下操作:

  • 删除项目根目录下的node_modules文件夹
  • 删除package-lock.json(或yarn.lock,依包管理器而定)
  • 重新执行npm install/yarn install
  • 重启Vite开发服务器

3. 统一MUI相关依赖版本

确保@mui/material、@mui/system、@emotion/react、@emotion/styled等关联包版本一致,版本不兼容会引发此类函数引用错误。可在package.json中统一设置为同一稳定v5.x版本后重装依赖。

4. 验证RTL插件配置

检查rtlPlugin、prefixer及缓存相关导入是否正确:

import rtlPlugin from 'stylis-plugin-rtl';
import prefixer from 'stylis-plugin-prefixer';
import { createCache, CacheProvider } from '@emotion/react';

优化路由包裹顺序

原代码将CacheProvider和ThemeProvider放在Switch内部,仅匹配/applicant路由时才加载主题,建议将其提升至Router外层,确保全局生效:

function App() {
  let history = useHistory();
  let contained = "Test The";
  return (
    <CacheProvider value={cacheRtl}>
      <ThemeProvider theme={theme}>
        <div className="App">
          <Router>
            <div>
              <Switch>
                <Route exact path="/applicant">
                  <Applicant />
                </Route>
              </Switch>
            </div>
          </Router>
        </div>
      </ThemeProvider>
    </CacheProvider>
  )
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 13:05:44