ag-Grid/Reactjs - 如何获取 columnDefs 中的单元格值

ag-Grid/Reactjs - How to get cell value in columnDefs

我在 Reactjs 应用程序中使用 ag-Grid table,我的代码片段如下所示:

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>`;
}

目前我已经在 cellRendererParams 中硬编码了 value: "BUY",但我希望它实际上等于该列单元格中的任何内容,可以是 BUYSELL

此值会影响 css 应用于文本的内容,BUY 值将显示为绿色,而 Sell 值将显示为红色。

如何设置 value 等于单元格中的实际文本而不是像这样硬编码?

你可以这样做

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

获取单元格的值

感谢 'A Ghanima' 提到使用 params.value,这帮助我想出了以下有效的解决方案

{
  headerName: 'Side',
  field: UI_FIELDS.SIDE,
  width: 70,
  cellRenderer: sideRenderer,
  cellRendererParams: (params) => { value: params.value }
}