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
相关产品推荐
相关产品推荐

