如何覆盖主题中的材质 ui 阴影

时间:2021-01-19 13:20:40

标签: reactjs material-ui

import {
  createMuiTheme, responsiveFontSizes,
} from "@material-ui/core/styles";

let theme = createMuiTheme({
  palette: {
    primary: {
      main: "#000",
    },
    secondary: {
      main: "#ccc",
    },
  },
  typography: {
    fontFamily: "Roboto",
  },
  shadows: [
    "none",
    "0px 15px 60px rgba(0, 0, 0, 0.25)",
    "0px 35px 60px rgba(0, 0, 0, 0.25)",
    "20px 55px 60px rgba(0, 0, 0, 0.25)",
    "10px 15px 60px rgba(0, 0, 0, 0.25)",
  ],
});

theme = responsiveFontSizes(theme);

export default theme;

控制台中有一条警告说: 警告:失败的道具类型:Material-UI:此高度 4 未在组件中实现。 既然是25个元素的数组,应该怎么做?

1 个答案:

答案 0 :(得分:1)

shadows 需要所有 25 个 box-shadows,因为 material-ui 默认在组件内部使用许多这些阴影。所以方法是提供所需的阴影,然后完成剩下的其他工作,以完成数组中的 25 box-shadows 传递 none

shadows: [
    "none",
    "0px 15px 60px rgba(0, 0, 0, 0.25)",
    "0px 35px 60px rgba(0, 0, 0, 0.25)",
    "20px 55px 60px rgba(0, 0, 0, 0.25)",
    "10px 15px 60px rgba(0, 0, 0, 0.25)",
    ...Array(20).fill('none')
  ]

这里提供了 5 个阴影,其余 20 个将为 noneArray(20).fill('none') 将生成一个包含 20 个元素的数组(在这种情况下没有),然后将此数组扩展到 shadows 数组中。它将在数组内总计 25 个元素。