我有自己的主題,我能很好地設計主題。 現在我有三種不同風格的材質UI標簽。這就是為什么我需要使用makeStyles來改變樣式。
這是我需要更改的標簽示例
...
const useStyles = makeStyles(theme => ({
root: {
flexGrow: 1,
width: "100%",
backgroundColor: theme.pallete.primary
},
tabs: {
/// some styles
}
...
}
));
...
<Tabs
...someProps
className={classes.tabs}
>
選項卡內元素有這樣的類:
<button class="MuiButtonBase-root MuiTab-root MuiTab-textColorSecondary Mui-selected MuiTab-labelIcon">
我嘗試過用同樣的方式編輯樣式
... = createMuiTHeme ({
overrides: {
...some overrides
}
就我而言:
const useStyles = makeStyles(theme => ({
root: {
flexGrow: 1,
width: "100%",
backgroundColor: "#121D42",
MuiButtonBase: {
root: {
///some styles
},
}
},
...
但它不適用于makeStyles
那么如何使用makeStyles()編輯標簽頁內部的按鈕,可能嗎?或者幫我解答一下
我現在已經找到了一個解決辦法。
使用樣式組件和創建樣式元素——我們可以更容易地改變樣式。我們應該提供樣式
const NewButton = styled(({styledComponentProp, ...rest}) => (
<Button classes={{label: 'label'}} {...rest}/>
))`
.label {
color: blue;
font-size: ${props => props.styledComponentProp};
}
`
export const BlueButton = styled(props => {
return (
<StylesProvider injectFirst>
<NewButton variant="contained" styledComponentProp="20px"> Red Labeled Button </NewButton>
</StylesProvider>
);
})`
`;
但是我們有更好的解決方案嗎?