我在我的项目中使用了Muiv5组件,目前我使用sx props来设计所有MUI组件的样式,但是将sx放在每个组件的每一行中看起来不太好。我想知道是否有其他方法可以像在样式化组件库中那样,对每个组件进行样式化或应用自定义类。我也知道从MUI的样式,但这是用于制作可重用的组件,但我想使用的东西,这将有助于我在准备样式,我可以应用于任何组件。
下面是我的代码示例。
const theme = useTheme();
return (
<Box sx={{ border: '1px solid red', flex: 'auto', paddingLeft: '8px' }}>
<Box
sx={{
width: '100%',
height: '46px',
display: 'flex',
alignItems: 'center',
justifyContent: 'space-between',
background: theme.palette['P-10'],
padding: '8px 24px'
}}
>
</Box>
<Box sx={{ border: '1px solid green' }}>{AreaChartComp}</Box>
</Box>
);
};
If you see there i had to use sx 3 times, which do not want, instead am looking of other way where i can pass classes.
2条答案
按热度按时间qc6wkl3g1#
如果 您 想要 使用 MUI5 和 旧 的 makeStyles 方法 , 类似 以下 的 方法 可能 会 有所 帮助 :
只需 创建 一 个 包含 要 使用 的 样式 的 对象 :
中 的 每 一 个
然后 在 组件 上 使用 SX 道具 中 的 每个 项目 , 如下 所 示 :
格式
请 注意 , 在 第 三 个 示例 中 , 如果 要 在 SX 属性 中 添加 一些 附加 内容 ( 例如 示例 中 的 绿色 ) , 则 应 使用 spread 语法 ( ... ) 来 扩展 样式 对象 , 并 注意 双 大 括号 以 使 其 成为 正确 的 对象 。
这个 样式 对象 就 像 一 个 普通 的 SX 道具 一样 工作 , 用于 对子 组件 、 子类 或 伪 类 等 进行 样式 化 , 如 按钮 示例 所 示 。
fykwrbwg2#
您可以在css文件中使用makeStyles,如下所示:
并在组件中使用它: