【发布时间】:2017-10-03 19:12:07
【问题描述】:
使用 Material-UI v1:
我想创建多个不同颜色的按钮,这些按钮将来自 Material-UI 调色板。
理想情况下,我希望有类似的东西:
<Button color="colorFromThePalette">
<Button color={ theme.palette.myColor }>
但我收到以下错误:
道具类型失败:提供给
Button的道具color的价值someValue无效,应为["default","inherit","primary","accent","contrast"] 之一。
考虑到我希望与材料设计调色板保持一致,我有哪些选择?
【问题讨论】:
-
看看Customization section。您可以用自己的值覆盖默认值,但最后,您仍然必须使用定义的颜色关键字。
-
我想要使用的颜色超过 4-5 种,因此在我的主题中覆盖“主要”/“重音”颜色对我来说不是一个好选择。
-
您的选择是为每个按钮添加一个
className,并使用自定义 CSS 类定义您要使用的背景颜色。导入此样式表时,请务必在导入material-ui部分后再导入。 -
但是覆盖css背景是不够的——我已经试过了。当您单击按钮并且背景更改为另一个时,它会变得混乱。
-
这或多或少是意料之中的,因为这个框架不打算像这样使用。使用 CSS 覆盖,您必须了解它是如何归结为呈现的 HTML 并调整您的样式表的。您还必须涵盖悬停、焦点、活动和其他可能的状态。换句话说,这就像重新设计框架。我正在使用另一个库,
reactstrap,最后我是这样管理的。
标签: reactjs material-ui