ag-grid如何向cellRenderer传递基于单元格参数的动态参数
原因说明
cellClassRules 的API原生支持传入接收单元格参数的判断函数,表格内部会自动执行这些函数,拿返回值判断是否要绑定对应类名。
但cellRendererParams默认会把你配置的对象原样透传给自定义渲染组件,不会自动遍历对象属性执行其中的函数,你写在属性里的函数会被直接当做函数类型的prop传入组件,不会得到执行后的动态返回值,所以写法不生效。
实现动态传参的方案
- 方案1:函数式定义cellRenderer(全版本兼容)
不直接配置静态的cellRendererParams,改用函数形式写cellRenderer,在函数内部拿到完整单元格参数后,手动计算动态属性值,再渲染自定义组件传入计算好的props。
示例(React环境):cellRenderer: (params) => { // 基于单元格参数动态计算属性值 const dynamicValue = params.data.xxx ? params.data.xxx : '默认值'; // 渲染自定义组件时传入计算后的props return <CustomCellComp someProp={dynamicValue} /> } - 方案2:函数式配置cellRendererParams(v28及以上版本ag-grid支持)
新版本ag-grid支持把cellRendererParams整体定义为一个接收单元格参数的函数,表格内部会自动执行这个函数,拿返回的对象作为透传给渲染组件的props。
示例:cellRendererParams: (params) => { return { someProp: params.error ? '错误状态' : '正常状态', // 动态计算属性 staticProp: '固定属性值' // 也可以传静态属性 } }
注意:如果使用的是v28以下的旧版本,第二种写法不生效,请使用第一种方案。
内容的提问来源于stack exchange,提问作者Lukas
相关产品推荐
相关产品推荐

