首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Mui5主题中覆盖组件样式?

如何在Mui5主题中覆盖组件样式?
EN

Stack Overflow用户
提问于 2021-11-25 15:33:46
回答 1查看 102关注 0票数 0

我正在从Mui4升级到5的过程中。

升级后,我的索引文件看起来像这样(注意我使用的是JSS,因此使用了StyledEngineProvider):

代码语言:javascript
复制
function renderApp() {
  ReactDOM.render(
      <StyledEngineProvider injectFirst>
        <ThemeProvider theme={theme}>
          <CssBaseline />
          <Typography variant="h2" component="h2">H2 TEST</Typography>
          ...
        </ThemeProvider>
      </StyledEngineProvider>,
    document.getElementById('root'),
  );
}

我的主题是:

代码语言:javascript
复制
createTheme({
  components: {
    MuiTypography: {
      defaultProps: {
        title: 'test h2 title',
      },
      styleOverrides: {
        root: {
          fontSize: '10px',
          fontWeight: 500,
        },
      },
    },
  },
});

我可以看到我的主题被用作"title“属性被添加到我的排版组件中。但styleOverrides内部的一切似乎都被丢弃了。此外,添加到theme.palette中的颜色可以正常工作,但theme.typography.h2也不会更改任何样式。我对其他组件也有相同的逻辑,但它似乎不起作用。

正如在Styles broken after migrating to v5中指定的那样,我确保StyledEngineProvider位于组件树的顶部,并从应用程序中删除了@material-ui/core (Mui4)的任何痕迹。

EN

回答 1

Stack Overflow用户

发布于 2021-11-25 17:51:18

migration doc之后,即使您在应用程序中使用JSS而不是emotion,也不清楚以下包是否是强制性的。请注意,没有任何警告,例如主题配置中的情感样式将不会被编译。

您必须安装以下软件:

代码语言:javascript
复制
npm install @emotion/react @emotion/styled
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70113750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档