Вот StackBlitz, который демонстрирует проблему / вопрос: https://stackblitz.com/edit/react-s9l2kj
(по сути, это измененная версия Пример правил класса строк код из веб-сайт ag-grid)
У меня есть функция getRowClass
, которую необходимо обновить при изменении свойства, переданного моему компоненту. В приведенном примере кода это передается компоненту Grid
(здесь урезанная версия):
const Grid = (props) => {
const getRowClass = (params) => {
var numSickDays = params.data.sickDays;
if (numSickDays > props.minDays && numSickDays <= props.maxDays) {
return 'sick-days-warning';
};
return '';
};
return (
<>
<AgGridReact
rowData={data}
columnDefs={columnDefs}
getRowClass={getRowClass}
/>
<label>Show warning when: {props.minDays} < sick days <= {props.maxDays}</label>
</>
);
}
В примере StackBlitz обновление значения в текстовом поле Min days
правильно вызывает метка для повторного рендеринга, показывающая, что новое свойство правильно передается в сетку.
Вопрос
Почему функция getRowClass
не обновляется? Мне кажется, что AgGridReact
кэширует первое значение для getRowClass
, которое передается ему, а не обновляет его, когда создается новая функция getRowClass
, так что это похоже на ошибку ... однако, Возможно, я неправильно понимаю, как мне обновлять функцию getRowClass
.