AG Grid:cellRenderer 禁用值格式化程序
AG Grid: cellRenderer disables value formatter
我的 AG-Grid 中有一个自定义 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;
这不是错误。你必须使用 cellRenderer
的 params
中的 valueFormatted
属性 来获得 valueFormatter
的格式化输出。 value
属性 保存原始未格式化的数据。所以 cellRenderer
会像
function HighlightCellRenderer({ valueFormatted, ...props }) {
const searchValue = useSelector(getSearchValue);
if (searchValue && valueFormatted.toLowerCase().includes(searchValue)) {
return <strong>{valueFormatted}</strong>;
}
return <span>{valueFormatted}</span>;
}
我的 AG-Grid 中有一个自定义 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;
这不是错误。你必须使用 cellRenderer
的 params
中的 valueFormatted
属性 来获得 valueFormatter
的格式化输出。 value
属性 保存原始未格式化的数据。所以 cellRenderer
会像
function HighlightCellRenderer({ valueFormatted, ...props }) {
const searchValue = useSelector(getSearchValue);
if (searchValue && valueFormatted.toLowerCase().includes(searchValue)) {
return <strong>{valueFormatted}</strong>;
}
return <span>{valueFormatted}</span>;
}