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

React中使用MUI的ColumnLayout实现条件渲染时JSX报错如何解决?

解决方案

你遇到的报错本质是JSX语法要求单个表达式不能返回多个并列的根元素,而包裹额外的ColumnLayout容器会破坏派生自MUI的栅格系统父子节点匹配规则,所以用JSX片段(Fragment) 做占位容器即可,它不会生成真实DOM节点,完全不会影响原有布局。

正确代码示例

<ColumnLayout container spacing={1}>
    <ColumnLayout item xs={9}>                    
        <b>{text}</b>
    </ColumnLayout>
    {showSubTextAndIcon ?
        <> {/* 这里用JSX片段做无渲染包裹 */}
            <ColumnLayout item xs={2}>                    
                <span>{subText}</span>
            </ColumnLayout>
            <ColumnLayout item xs={1}>
                <Icon  />
            </ColumnLayout>
        </>
        : null
    }
</ColumnLayout>

补充说明

如果你的项目使用的React版本低于16.2,不支持<>短语法,可以替换为<React.Fragment>标签,功能完全一致:

{showSubTextAndIcon ?
    <React.Fragment>
        <ColumnLayout item xs={2}>                    
            <span>{subText}</span>
        </ColumnLayout>
        <ColumnLayout item xs={1}>
            <Icon  />
        </ColumnLayout>
    </React.Fragment>
    : null
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 03:06:02