ag-grid устанавливает cellRendererParams на значения из данных строки

Я хочу отправить данные в свой компонент cellRenderer через объект cellRendererParams, но я не знаю, как получить для этого доступ к данным строки. Вот пример того, что я хочу сделать:

cellRendererParams: {
    label: currentRowData.myField + currentRowData.myOtherField
}

Я не хочу, чтобы мой компонент cellRenderer знал структуру данных сетки, поскольку я могу использовать его в других сетках с другими данными строк.


person HisDivineShadow    schedule 01.12.2020    source источник


Ответы (2)


Есть много способов:

1)

valueGetter: (params) => ({ property1: params.data.myField1 + params.data.myField2, property2: params.data.someOtherField }),
valueFormatter: ({ property1: params.data.myField1 + params.data.myField2, property2: params.data.someOtherField }),
person x-rw    schedule 03.12.2020
comment
Да, я использовал №1, потому что это происходит через свойство value объекта params. - person HisDivineShadow; 03.12.2020

Попробуйте использовать valueGetter, например:

valueGetter: (params) => params.data.myField + params.data.myOtherField
person rateLess    schedule 01.12.2020
comment
Думаю, мой пример был немного упрощен, поскольку он показывает только один элемент в объекте cellRendererParams. Ваше предложение работает только для свойства value объекта params, переданного компоненту cellRenderer. Если есть несколько элементов, которые я хочу передать, например { label: 'something', someBoolean: data.myBooleanField , someValue: dataRow.oneValue * dataRow.otherValue }, тогда ваше решение не работает, хотя я ценю ваше решение, поскольку оно выполняет простой случай. - person HisDivineShadow; 02.12.2020
comment
Итак, я продвинул ваше решение еще на один шаг и смог заставить его работать. Вместо того, чтобы valueGetter возвращал только одно значение, я заставил его возвращать объект, например. valueGetter: (params) => ({ property1: params.data.myField1 + params.data.myField2, property2: params.data.someOtherField }). Если вы обновите свой ответ на этот вопрос, я отмечу его как принятый. - person HisDivineShadow; 02.12.2020