【发布时间】:2021-07-17 19:53:01
【问题描述】:
需要在如下所示的样式组件中使用主题间距值,但没有成功。 当我第一次创建它时,样式被应用于按钮。但是现在,没有应用任何样式!
你可以在这里看到它:sandbox。
import React from "react";
import styled, { ThemeProvider } from "styled-components";
import {
createMuiTheme,
ThemeProvider as MuiThemeProvider,
darken
} from "@material-ui/core/styles";
import Button from "@material-ui/core/Button";
const customTheme = createMuiTheme({
palette: {
primary: {
main: "#6772e5"
}
},
spacing: 8
});
const StyledButton = styled(Button)`
${({ theme }) => `
background-color: ${theme.palette.primary.main};
color: #fff;
box-shadow: 0 4px 6px rgba(50, 50, 93, 0.11), 0 1px 3px rgba(0, 0, 0, 0.08);
padding-left: 20px;
padding-right: ${theme.spacing(2)};
font-size: 13px;
&:hover {
background-color: ${darken(theme.palette.primary.main, 0.2)};
}
`}
`;
export default function App() {
return (
<MuiThemeProvider theme={customTheme}>
<ThemeProvider theme={customTheme}>
<StyledButton>Customized</StyledButton>
</ThemeProvider>
</MuiThemeProvider>
);
}
【问题讨论】:
-
使用
StylesProvider组件,如图所示here。
标签: css reactjs material-ui styled-components