如何在Material UI DataGrid分组表头中隐藏renderCell渲染内容?
解决Material UI DataGrid分组行中renderCell内容显示问题
问题场景
使用Material UI的DataGrid组件时,为id列配置renderCell返回JSX内容,但该内容会同步渲染在可展开的分组表头行中,需要仅在展开后的子数据行显示该内容,且因需返回JSX无法使用valueFormatter。
解决方案
通过判断当前行节点的类型,仅在非分组行(子数据行)中渲染目标JSX:
{ field: "id", headerName: "ID", width: 100, renderCell: (params) => { // 仅非分组行(子数据行)渲染内容 if (params.node.type !== 'group') { return <div>"asdf"</div>; } return null; } }
逻辑说明
Material UI DataGrid的renderCell参数params里,params.node包含当前行节点的元信息:
- 当
params.node.type为'group'时,当前行是分组表头行 - 当
params.node.type为'data'时,当前行是实际的子数据行
通过这个类型判断,能精准控制JSX内容的渲染范围,既满足仅在子行显示的需求,又保留renderCell返回JSX的能力。
内容的提问来源于stack exchange,提问作者Embedded_Mugs
相关产品推荐
相关产品推荐

