我有一个使用Material UI的React应用程序。导入按钮时,可以使用primary={true}
或secondary={true}
设置其样式。我想更改primary
和secondary
的颜色。我发现我可以这样做:
const theme = createMuiTheme({
palette: {
primary: '#00bcd4',
secondary: '#ff4081'
}
});
然后我可以在这里使用它:
<MuiThemeProvider theme={theme}>
<App/>
</MuiThemeProvider>
但我得到了一个错误:createMuiTheme is not a function...
我进入Material UI包,发现没有这样的文件,当我导入createMuiTheme
时,我得到了undefined
。它应该是从material-ui/styles/theme
导入的,但实际上根本没有这个文件夹!
我用的是material-ui@0.19.4
。我把这个包更新到了v20
,但是仍然没有这样的文件夹。
5条答案
按热度按时间eufgjt7s1#
新增答案
在最新版本的Material UI中,createMuiTheme现在已弃用。因此,我们应该使用
createTheme
旧答案
https://material-ui.com/customization/themes/:
jc3wubiy2#
我注意到的与文档的两个不同之处是MuiThemeProvider的 prop 名称:
函数不是createMuiTheme,而是getMuiTheme:
更新:
如果你从包中打开光主题,他们没有使用主或次,也许你应该这样尝试?
to94eoyn3#
你应该按照文档建议使用v1-beta。我自己也有这些问题,意识到我使用的是过时版本的MUI。
npm install material-ui@next
导入:
创建主题:
将其应用到您的按钮:
通常,如果你遇到任何关于MUI的
import
问题,那么几乎每次都是版本问题。w9apscun4#
如果要使用自定义颜色,请将其放在对象的
main
属性中。MUI将使用该颜色来计算除主值之外的dark、light和contrastText值。dark
、light
:main
颜色的较暗和较亮版本。contrastText
:如果背景颜色为main
颜色,则为文本的颜色。下面的例子:
在主对象和次对象中生成以下颜色特性:
您还可以通过将color对象直接传递给
primary
或secondary
属性来使用MUI颜色。这一次,MUI使用属性500
(例如amber[500]
)来计算其他3种颜色。代码如下:在主对象和次对象中生成以下颜色属性,请注意,由于传递了整个颜色,因此从
50
到A700
的所有其他着色也可用作一个小的副作用:现场演示
相关解答
b5buobof5#
https://mui.com/material-ui/customization/theming/中描述了MUI Material v5的新API。