材质用户界面:是否可以在theme.ts文件中引用createMuiTheme的其他属性?

时间:2019-10-31 21:26:33

标签: reactjs typescript material-ui

在导入这样的主题时(在filename.style.ts中):

import theme from 'common/theme';

我可以访问不同的属性,例如

theme.breakpoints.down('md')

我正在尝试在theme.ts文件中引用同一属性 ,但当然要引用..主题。在这里无效,所以我试图找到一种方法可以重用/引用它。

正如您在MuiTable上看到的那样,我正在尝试访问断点调色板/主视图

theme.ts

import createMuiTheme from '@material-ui/core/styles/createMuiTheme';
export const MuiPaperBackgroundColor = '#f7f8f6';

export default createMuiTheme({
spacing: 8,
breakpoints: {
  values: {
    xs: 0, sm: 600, md: 960, lg: 1280, xl: 1650,
  },
},
palette: {
  primary: {
    main: '#3f18aa',
    extraLight: 'rgb(193, 181, 227)',
    noDataColor: '#cccccc',
    cardBgColor: '#ECECEC',
    chartColors: [
      '#E77F42',
      '#F3C3A3',
    ],
  },
overrides: {
 MuiTable: {
  root: {
    whiteSpace: 'nowrap',
    [theme.breakpoints.down('md')]: {
      '& tr': {
        '& td:first-child, & th:first-child': {
          position: 'sticky',
          left: 0,
          backgroundColor: theme.palette.header.main,
          color: theme.palette.primary.contrastText,
          zIndex: 2,
        },
      },
    },
  },
},

},
});

2 个答案:

答案 0 :(得分:1)

从各个m <- structure(c(1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0), .Dim = c(8L, 15L), .Dimnames = list(NULL, NULL)) 包中构建主题。这是我的操作方式:

material-ui

答案 1 :(得分:1)

Ricky 的解决方案在实践中很好,但 Material warns before important deeper than two levels(在这种情况下为 @material-ui/core/styles/foo)因为它被认为是私有的,而不是任何公共合同的一部分。又名,它可以改变任何释放。

它可能不适用于断点,但颜色或字体权重等可以轻松共享为之前声明的普通常量。但我也怀疑在此声明中首先包含响应性是否是个好主意。