我在Reactjs应用中使用ag-Grid表,下面是我的代码片段:
const columnsDef = [
.
.
{
headerName: 'Side',
field: UI_FIELDS.SIDE,
width: 70,
cellRenderer: sideRenderer,
cellRendererParams: {
value: "BUY"
}
},
.
.
]
function sideRenderer(params) {
const value = _.get(params, 'value') || '';
const styleSuffix = _.isEmpty(value) ? 'default' : value.toLowerCase();
return `<span class="side-renderer side-renderer-${styleSuffix}">${value}</span>`;
}
我暂时在value: "BUY"
中对cellRendererParams
进行了硬编码,但是我希望它实际上等于该列在该单元格中的任何值,可以是BUY
或SELL
。
此值会影响应用于文本的CSS,BUY
值将变为绿色,而Sell
值将变为红色。
如何将value
设置为等于单元格中的实际文本,并且不这样进行硬编码?
答案 0 :(得分:1)
您可以执行以下操作
const columnsDef = [
{
headerName: 'Side',
field: UI_FIELDS.SIDE,
width: 70,
cellRenderer: (params) => params.value.toLowerCase() === 'buy' ? `<span class="side-renderer side-renderer-buy">${params.value}</span>` : `<span class="side-renderer side-renderer-sell">${params.value}</span>
}
]
我想这就是您想要的?如果没有,请更详细地说明您的需求。
编辑:您并不需要传递单元格渲染参数,您可以使用params.value获取单元格的值
答案 1 :(得分:0)
感谢“ A Ghanima”提到使用params.value
,这帮助我提出了以下可行的解决方案
{
headerName: 'Side',
field: UI_FIELDS.SIDE,
width: 70,
cellRenderer: sideRenderer,
cellRendererParams: (params) => { value: params.value }
}