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

MUI 5中如何在sx prop内正确展开theme样式完成v4代码迁移

错误原因

你当前的sx语法不符合MUI v5的规范:sx的主题注入逻辑要求,若要访问全局theme实例,要么直接将sx的取值设置为接收theme作为入参的回调函数,要么在单个样式属性的取值位置写回调函数。你将回调函数写在对象字面量内部展开,此时theme没有被MUI注入,自然会抛出未定义的错误。

正确实现方案

方案1:sx整体设为回调(最贴合原v4写法的实现)

直接把整个sx的值替换为接收theme的函数,返回包含theme.mixins.toolbar的样式对象即可,也可以在对象内追加其他自定义样式:

<Box
  sx={(theme) => ({
    ...theme.mixins.toolbar,
    // 可在此处添加其他样式规则
  })}
/>

方案2:单属性引用theme

如果你只需要用到toolbar的部分样式,也可以单独对指定属性设置回调访问theme:

<Box
  sx={{
    minHeight: (theme) => theme.mixins.toolbar.minHeight,
    // 其他需要的样式属性
  }}
/>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 23:45:03