npm / ag-grid-react
ag-grid-react
What changed in ag-grid-react 27 to 30, from its official release notes, upgrade guides and advisories. Sources checked 2026-10-26.
31 breaking3 deprecations46 new APIs and options3 performance33 behavior and defaults53 fixes and other
See which of these apply to your code, ranked, in your agent:
npx @unstale/cli initag-grid-react 3058 changes
Breaking changes 9
The redundant maxSpacing option is removed.
Column group header cells span multiple rows by default when other groups have more levels.
This setting is ignored when filterParams.excelMode is used.
Group rows become sticky by default in row grouping, tree data, and master detail.
Quick Filter excludes values in hidden columns by default.
The main field defaults to using ES Modules.
The legend is disabled by default for single-series cartesian charts.
Horizontal sticky group column headers become the default behavior.
Deprecated APIs from v27 are removed in v30.
New APIs and options 19
Axis labels can be toggled on and off instead of relying on label formatters.
A built-in checkbox cell editor is available for cell editing.
The grid adds a built-in numeric cell editor.
Cell data types and cell data type inference are added.
Events fire at the start and end of cell range delete operations.
Horizontal or vertical lines spanning the chart area can display while hovering over the chart.
A Grid API is available to call chart link and unlink operations.
Charts can be updated via the Grid API.
An API method lets developers paste from the clipboard into the grid.
TypeScript can express column, editor, and renderer type information.
A built-in Date picker cell editor is added.
Excel export can suppress outlines for rows and columns.
Excel export can use the formatted cell value instead of the underlying cell value.
Grid instances can be identified via a unique id.
AG Grid modules can be registered on a per-grid basis.
An event fires at the end of cut operations.
An event fires at the start of cut operations.
Group footer rows are supported with the server-side row model.
Treemap label values can wrap to fit inside treemap tiles.
Performance 1
Destroying the grid is faster when using React with ag-grid-enterprise packages.
Behavior and default changes 9
The field property can use TData.
Copy down supports complex objects.
The formatted cell value can be used with copy, fill handle, and copy range down.
Excel export preserves the collapsed or expanded state of row groups.
When enterMovesDown or enterMovesDownAfterEdit is enabled, SHIFT + ENTER can focus the cell above.
The event provides more information.
Aggregation logic for top-level and root-level rows is refined.
Copying complex objects can fall back to valueFormatter and valueParser when no custom copy function is provided.
Value Parser can run on paste, fill handle, and copy range down.
Fixes and other changes 20
Cut, copy, and paste work when using the browser's edit menu.
The default cell editor can use the valueFormatter when its value cannot be coerced to a string.
Filters and floating filters can be enabled or changed retrospectively.
Column group headers with marryChildren enabled can be moved after a group child is hidden.
Pasting a copied range of values no longer skips group row cells when row grouping and enableGroupEdit are used.
Transactions with row grouping or tree data no longer make the grid slow or crash in this full-width row configuration.
Calling the API after unmount no longer hangs the browser when column groups are present.
Setting groupDisplayType no longer crashes the grid.
Removing a group no longer throws an error if its group column filter was instantiated.
Server-side row model master detail no longer crashes with groupRowsSticky.
Horizontal fill handle better supports columns with complex objects.
Column filters support HTML5 number inputs in non-Chrome-based browsers.
Numeric values are correctly parsed following a cell edit.
Paste preserves quotation marks when copying a value that contains them.
Quick Filter filters pivoted data.
The grid no longer throws an error when used within a React Suspense component.
Server-side row model rows render when rowHeight is decimal.
Expanding a row group and scrolling no longer renders the group name on the left in RTL mode.
A failed refresh request for a successfully loaded row no longer causes repeated refresh attempts.
The vertical scrollbar thumb is positioned correctly when serverSideInitialRowCount is set.
ag-grid-react 2948 changes
Breaking changes 10
Deprecated ag-grid-column components are removed.
The deprecated key property is removed from ICellEditorParams.
The deprecated addRowCompListener property is removed.
The deprecated suppressRefresh and autoHeight properties are removed.
The deprecated padding property is removed.
IRowNode is introduced as the public-facing interface instead of the internal RowNode object.
Legacy deprecated chart API members are removed.
Legacy deprecated methods are removed from gridApi and columnApi.
Legacy deprecated properties are removed from GridOptions and ColDefs.
React ChangeDetectionStrategyType.DeepValueCheck is removed.
Deprecations 1
The API method is deprecated.
New APIs and options 15
Axis label skipping can be turned off.
The chart tool panel DATA tab items can be customized.
The column aggregation function can be removed from the column menu.
Custom column layouts can be used in the column menu columns.
The columnMoved event arguments gain a finished property to identify the final drop position.
Legend item clicks can be disabled.
Legend item arrangement can be configured to override smart auto arrangement.
Integrated charts can customize pie chart sector label settings through the format panel.
Provided CellEditor parameter interfaces are exported for use by developers.
Set Filter values can be displayed in a hierarchical list.
Server-Side Row Model can display a single loading row when filtering instead of showing all grid rows as loading.
rowSelected and selectionChanged events gain a source property to distinguish user-driven from API-driven selection changes.
Treemap charts gain a cell value label formatter.
Treemap series can use color values directly from the data.
Unbalanced row groups can be made optional.
Behavior and default changes 9
animateRows is a reactive property in React.
Chart titles, subtitles, and legends can apply chart padding from the outside edge.
The Chart Tool Panels Button is enabled by default.
Set Filter supports complex objects as provided filter values.
Legend items can be paginated when the chart area is too small.
Pagination properties, including pagination and paginationPageSize, are reactive in React.
Row group footers, including group subtotal and grand total rows, can be exported to Excel and CSV.
Set Filter can interpret and group date values by week, month, quarter, or year.
The gridOptions property is reactive in React.
Fixes and other changes 13
The event is called when combination series types are changed.
Copied cell ranges can include the column header text just once when all ranges contain exactly the same columns.
The type now allows the values open and closed.
Fixes filter popups resizing only the first time they are opened.
Fixes camel-case styles not being applied and CSS variables not being added as properties.
Fixes CSS variables not being added as properties.
Fixes camel-case styles not being applied correctly.
The callback is reevaluated after a transaction update.
Fixes opening a popup overriding the callback and returning the popup to its original position.
Fixes selecting the wrong value when typing a repeated letter.
Searching matches raw values as well as formatted values.
The source property value is passed through when updating DefaultColDefs.
Fixes the Filter Search remaining visible in the filters tool panel when suppressFilterSearch is true in toolPanelParams.
ag-grid-react 2842 changes
Breaking changes 6
The @ag-grid-community/all-modules and @ag-grid-enterprise/all-modules packages are removed.
The comparator parameter is renamed from isInverted to isDescending.
The event is removed in favor of rowDataUpdated.
This event replaces rowDataChanged.
API members are renamed from Secondary Columns to Pivot Columns.
The top-level checkbox can be unselected when some rows are not selectable.
New APIs and options 5
Legend items can be limited to a character count with an ellipsis, and hovering can show a tooltip with the full value.
A maximum width can be set for chart legend items.
Charts add a listener for clicks on legend items.
Generics are added to row data and cell value typings.
The group row for an expanded row group can float or stick at the top of the viewport while scrolling through its child rows.
Performance 2
Rendering speed is improved for column and line series with large numbers of data points.
Column aggregation calculation performance is improved.
Behavior and default changes 9
Bar and Column series support number and time axes.
Cells can be deselected from a selected range by CTRL+clicking a cell or SHIFT+dragging to a cell.
Column headers support word wrapping for multiline text and automatic height.
CSS variables in themes are extended.
Row groups and tree data can be exported to Excel so they can be expanded and collapsed there.
Different group columns can be sorted separately by clicking grouped column items in the row group panel.
The callback can be invoked after a cell value edit, rather than only once on initial render.
A column can be hidden when grouping by dragging it from the grid header or columns tool panel list.
Server-side sorting and filtering are allowed with the server-side row model without Infinite Scroll.
Fixes and other changes 20
Using the mouse wheel while the filter is focused no longer changes its entered number.
Cell Class handling is improved to avoid a React memory leak.
Row group, values, and pivot areas use the role attribute instead of aria-role to comply with accessibility standards.
A memory leak involving custom cell renderer components built on CellRendererFramework and pinnedRowCellRendererFramework is addressed.
A memory leak involving custom header components built on HeaderComponentFramework is addressed.
Clicking a grid cell with range selection enabled no longer fires this event unnecessarily.
Changing the external filter no longer calls isExternalFilterPresent multiple times instead of once.
The fill area dashed border is shown between pinned and unpinned columns when dragging in a pinned column.
Collapsed group row cell values can be copied when this option is enabled.
X and Y axis labels are no longer clipped.
Removing a column from the row group panel fires onColumnVisible when column visibility changes.
CTRL+Z and CTRL+Y shortcuts work with non-QWERTY keyboards.
A newly added series is no longer hidden in JavaScript while visible in Angular, React, and Vue.
The event no longer fires twice instead of once on mousedown when range selection is enabled.
Applying column state followed by a filter model no longer produces empty lines inside grid rows.
Filtered rows render with correct heights when a filter model is set.
The row group panel uses the role attribute instead of aria-role.
The event property storing the browser event is no longer always undefined.
Expanding a secondary column after reordering secondary columns no longer resets their order.
Locked columns are rendered on the correct side when their definitions are not at the expected end of the array.
ag-grid-react 2721 changes
Breaking changes 6
Integrated Charts chartType uses a string literal type instead of an enum type.
The filterParams valueGetter receives valueGetterParams instead of just the node.
Removed the Custom Cell Editor API method getPopupPosition().
getRowNodeId is required when using SSRM and selection.
Removed the Custom Cell Editor API method isPopup().
The Set Filter newRowsAction default is now keep.
Deprecations 2
Use suppressCellFocus in place of suppressCellSelection to suppress cell focus styling.
Deprecated suppressCellSelection and renamed it to suppressCellFocus to better describe that it suppresses cell focus styling, not selection.
New APIs and options 7
Added support for choosing the horizontal position of a column when using ensureColumnVisible.
Added the IMultiFilter interface to type public methods.
Added the ISetFilter interface to type public methods.
Added a non-blank filter operation to all simple filters.
The default status bar components can have their titles changed and their number values formatted.
textCustomComparator receives additional parameters including rowNode, valueFormatter, and the actual value.
The tooltip hide timeout can be set to a custom value.
Behavior and default changes 6
Keyboard users can move columns in the column tool panel to the row groups, values, and column labels panels.
Exported collapsible column groups can remain collapsible in Excel.
The filter operation select can be announced as a combobox by assistive technology.
Framework Components can be registered without using the xxxFramework naming convention.
Group column header values can be considered when performing column autosize.
tooltipValueGetter can return strings as well as custom objects for custom tooltip components.