AG网格:cellRenderer禁用值格式化程序

时间:2019-05-02 13:06:59

标签: reactjs ag-grid ag-grid-react

我在AG网格中有一个自定义cellRenderer,我正在使用valueformatter

const columnDefs = R.map(
  R.pipe(x => ({
    headerName: strings[x.name],
    field: x.name,
    valueFormatter: contactInformationFormatter,
    comparator:
      x.name === 'group' || x.name === 'tendency'
        ? selectValueToComparableNumber
        : null,
    cellRenderer: x.compenent !== 'select' ? 'highlightCellRenderer' : null,
    cellEditor: componentToCellEditors[x.component],
    cellEditorParams:
      x.component === 'select' ? cellEditorParams[x.name] : null,
    getQuickFilterText: function(params) {
      return x.component === 'select' ? null : params.value;
    },
  })),
  contactInformationCells
);

如果我排除cellRenderer,则格式化后的值将正确显示。如果包含它,我将获得未转换的值。这是错误吗?

这是我的格式化程序和我的cellRenderer

function contactInformationFormatter(params) {
  return strings[params.value] || params.value;
}

import React from 'react';
import { useSelector } from 'react-redux';

import { getSearchValue } from '../../layout/header/search-value-reducer';

function HighlightCellRenderer({ value, ...props }) {
  const searchValue = useSelector(getSearchValue);
  if (searchValue && value.toLowerCase().includes(searchValue)) {
    return <strong>{value}</strong>;
  }
  return <span>{value}</span>;
}

export default HighlightCellRenderer;

1 个答案:

答案 0 :(得分:1)

这不是错误。您必须使用valueFormatted的{​​{1}}中的params属性来获取cellRenderer的格式化输出。 valueFormatter属性保存原始的未格式化数据。因此value就像

cellRenderer