You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MUI makeStyles如何基于传入props批量设置多组样式属性?

MUI makeStyles 批量条件样式实现方法

makeStyles 本身支持将单个类的样式配置直接声明为接收 props 的函数,返回完整的样式对象即可实现同条件样式聚合,无需为每个属性单独编写判断逻辑。

正确写法如下:

const useStyles = makeStyles((theme) => ({
  root: ({ isActive }) => {
    return {
      // 此处写所有场景通用的基础样式
      fontSize: "14px",
      padding: "8px 12px",
      // 条件样式:isActive 为 true 时批量合并对应样式
      ...(isActive && {
        color: "red",
        position: "fixed",
        top: "20px",
      })
    }
  }
}));

也可以简写为隐式返回的形式:

const useStyles = makeStyles((theme) => ({
  root: ({ isActive }) => ({
    fontSize: "14px",
    padding: "8px 12px",
    ...(isActive && {
      color: "red",
      position: "fixed",
      top: "20px",
    })
  })
}));

原有调用 useStyles 传参的方式不需要修改:

const classes = useStyles({ isActive });

如果存在多个判断条件,只需要叠加对应的对象展开逻辑即可:

root: ({ isActive, isDisabled }) => ({
  fontSize: "14px",
  ...(isActive && {
    // active 对应的样式集合
  }),
  ...(isDisabled && {
    // disabled 对应的样式集合
  }),
})

内容的提问来源于stack exchange,提问作者Spirconi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 04:15:03