Ниже приведено решение, если кто-то хочет добиться того же. Зарегистрируйте событие нажатия клавиши в функции обратного вызова onRangeSelectionChanged agGrid onRangeSelectionChanged={()=>{ window.addEventListener("keydown", this.handleDeleteOnRange)}
Затем проверьте нажатие клавиши удаления в handleDeleteOnRange, получите выбранный диапазон ячеек с помощью api getCellRanges agGrid и удалите значения этих ячеек.
handleDeleteOnRange(event) {
var cellRanges = this.gridApi.getCellRanges();
var rowData = this.state.rowData;
if ([46].indexOf(event.keyCode) > -1) { //delete key press
cellRanges.map((range) => {
if (range?.startRow?.rowIndex && range?.endRow?.rowIndex) {
var startRow =
Math.min(range.startRow.rowIndex, range.endRow.rowIndex);
var endRow =
Math.max(range.startRow.rowIndex, range.endRow.rowIndex);
for (var rowIndex = startRow; rowIndex <= endRow; rowIndex++) {
range.columns.forEach((column) => {
if (column.colDef.field !== "row_id") {
rowData[rowIndex][column.colDef.field] = "";
}
});
}
}
this.setState({ rowData: rowData });
this.gridApi.refreshCells();
});
}
}
Это просто демонстрационный код, демонстрирующий, как это работает.
Не забудьте удалить eventListeners после того, как работа будет выполнена.