Полагаю, это новый способ обнаружения изменений в последней версии.
Если вы обновите свой код следующим образом:
function updateColDef()
{
let data = [];
columnDefs.forEach(function(colDef) {
colDef.headerName = colDef.headerName + ' X ';
data.push(colDef);
})
data.push( {
headerName: 'New Column',
});
gridOptions.api.setColumnDefs(data);
}
Он будет работать, как и ожидалось.
Обновление:
Когда новые столбцы установлены, сетка будет сравниваться с текущими столбцами и определять, какие столбцы старые (подлежащие удалению), новые(новые столбцы созданы) или сохранены (оставшиеся столбцы сохранят свое состояние, включая положение, фильтр и сортировку).
Сравнение определений столбцов выполняется на 1) ссылка на объект сравнение и 2)идентификатор столбца, например colDef.colId .Если либо ссылка на объект соответствует, либо совпадает идентификатор столбца, то сетка обрабатывает столбцы как один и тот же столбец.
В первом случае это было сравнение объекта, во втором примере (послеобновление) его colId
case.
изменения произошли от 19.1 версии выпуска
AG-1591 Разрешить дельта-изменения в определениях столбцов.