繁体   English   中英

MUI:从material v4升级到v5后,提供的`styles`参数无效

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM