![](/img/trans.png)
[英]Migrating from mui v4 to v5 | TypeError: Cannot read properties of undefined (reading 'keyboardDate')
[英]MUI: The `styles` argument provided is invalid after upgrading from material v4 to v5
我最近从 Material V4 升级到 V5,现在出现以下错误:
MUI: The `styles` argument provided is invalid.
You are providing a function without a theme in the context.
One of the parent elements needs to use a ThemeProvider.
在我的App.js
文件中,我有以下设置:
import { createTheme, ThemeProvider, StyledEngineProvider, adaptV4Theme } from '@mui/material/styles';
import makeStyles from '@mui/styles/makeStyles';
import { CssBaseline, Hidden } from '@mui/material';
let theme = createTheme(adaptV4Theme({
palette: {
primary: {
light: '#63ccff',
main: '#009be5',
dark: '#006db3'
}
},
typography: {
h5: {
fontWeight: 500,
fontSize: 26,
letterSpacing: 0.5
}
},
shape: {
borderRadius: 8
},
props: {
MuiTab: {
disableRipple: true
}
},
mixins: {
toolbar: {
minHeight: 48
}
}
}));
theme = {
...theme,
overrides: {
MuiDrawer: {
paper: {
backgroundColor: '#18202c'
}
}
}
};
然后在我的 App.js 中返回以下内容:
const classes = useStyles();
return (
<NotifyProvider>
<Routes>
<Route path="/login" element={<Login />}></Route>
<Route path="/logout" element={<Logout />}></Route>
</Routes>
<StyledEngineProvider injectFirst>
<ThemeProvider theme={theme}>
<div className={classes.root}>
<CssBaseline />
<nav className={classes.drawer}>
</nav>
<div className={classes.app}>
<Header
onDrawerToggle={handleDrawerToggle}
/>
<main className={classes.main}>
<Routes>
<Route path="/" />
</Routes>
</main>
</div>
</div>
</ThemeProvider>
</StyledEngineProvider>
</NotifyProvider>
);
我不确定问题是什么以及我缺少什么,但我也注意到adaptV4Theme
已被弃用。
任何帮助都会很棒,因为该应用程序根本没有启动。
我有同样的问题。 这里有一个线程: https ://github.com/mui/material-ui/issues/30092 以及一些故障排除建议。 他们都没有为我工作,但线程中的其他一些人似乎已经通过删除yarn.lock
并重新运行yarn install
解决了这个问题,有关更多详细信息,请参阅线程。 如果您确实解决了它,请在此处发布并让我知道修复了什么,已经为此工作了几天,但没有运气。
ETA - 我能够通过将我正在测试的组件包装在<ThemeProvider/>
中来在我的应用程序中解决这个问题,如下所示: https ://github.com/mui/material-ui/issues/15528#issuecomment- 487952731 (我只是在测试时收到错误消息)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.