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

React中如何在MUI Box组件的subtitle属性内实现多行内容展示

错误原因

你之前的写法问题在于:<br> 是JSX元素,本质是JavaScript对象,直接和字符串做 + 拼接时,对象会被强制转为 [object Object] 字符串,因此会得到你看到的异常渲染结果。


可行解决方案(均不需要新增组件属性)

方案1:直接传递JSX结构(推荐)

MUI体系下组件的内容属性一般都支持传入React节点类型,你直接把subtitle的值设为包含换行/段落结构的JSX即可:

{
  title: 'Title',
  subtitle: (
    <>
      {string1}
      <br />
      {string2}
    </>
  ),
}

如果需要拆分独立段落,也可以直接嵌套 <p> 标签:

{
  title: 'Title',
  subtitle: (
    <>
      <p>{string1}</p>
      <p>{string2}</p>
    </>
  ),
}

方案2:使用换行符+CSS控制(适配subtitle仅支持字符串的场景)

如果你的Box组件对subtitle属性做了限制,仅支持传入字符串,可以用换行符 \n 拼接内容,再给内部渲染subtitle的容器添加 white-space: pre-line 样式即可识别换行:
首先构造subtitle字符串:

{
  title: 'Title',
  subtitle: `${string1}\n${string2}`,
}

然后在Box组件内部渲染subtitle的位置添加样式,假设你用MUI的Typography渲染subtitle:

<Typography variant="body2" sx={{ whiteSpace: 'pre-line' }}>
  {subtitle}
</Typography>

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 11:15:02