Migration from v6 to v7
This guide describes the changes needed to migrate the Data Grid from v6 to v7.
Start using the new release
In package.json, change the version of the data grid package to next.
-"@mui/x-data-grid": "^6.0.0",
+"@mui/x-data-grid": "next",
Since v7 is a major release, it contains changes that affect the public API. These changes were done for consistency, improved stability and to make room for new features. Described below are the steps needed to migrate from v6 to v7.
Breaking changes
Since v7 is a major release, it contains some changes that affect the public API. These changes were done for consistency, improve stability and make room for new features. Below are described the steps you need to make to migrate from v6 to v7.
Removed props
- The deprecated props
componentsandcomponentsPropshave been removed. UseslotsandslotPropsinstead. See components section for more details. - The
slots.preferencesPanelslot and theslotProps.preferencesPanelprop were removed. Useslots.panelandslotProps.panelinstead.
Print export
- The print export will now only print the selected rows if there are any.
If there are no selected rows, it will print all rows. This makes the print export consistent with the other exports.
You can customize the rows to export by using the
getRowsToExportfunction.
Selection
The cell selection feature is now stable.
The
unstable_prefix has been removed from the cell selection props listed below.Old name New name unstable_cellSelectioncellSelectionunstable_cellSelectionModelcellSelectionModelunstable_onCellSelectionModelChangeonCellSelectionModelChangeThe
unstable_prefix has been removed from the cell selection API methods listed below.Old name New name unstable_getCellSelectionModelgetCellSelectionModelunstable_getSelectedCellsAsArraygetSelectedCellsAsArrayunstable_isCellSelectedisCellSelectedunstable_selectCellRangeselectCellRangeunstable_setCellSelectionModelsetCellSelectionModel
Filtering
The
getApplyFilterFnV7inGridFilterOperatorwas renamed togetApplyFilterFn. If you usegetApplyFilterFnV7directly - rename it togetApplyFilterFn.The signature of the function returned by
getApplyFilterFnhas changed for performance reasons:
const getApplyFilterFn: GetApplyFilterFn<any, unknown> = (filterItem) => {
if (!filterItem.value) {
return null;
}
const filterRegex = new RegExp(escapeRegExp(filterItem.value), 'i');
- return (cellParams) => {
- const { value } = cellParams;
+ return (value, row, colDef, apiRef) => {
return value != null ? filterRegex.test(String(value)) : false;
};
}
The
getApplyQuickFilterFnV7inGridColDefwas renamed togetApplyQuickFilterFn. If you usegetApplyQuickFilterFnV7directly - rename it togetApplyQuickFilterFn.The signature of the function returned by
getApplyQuickFilterFnhas changed for performance reasons:
const getGridStringQuickFilterFn: GetApplyQuickFilterFn<any, unknown> = (value) => {
if (!value) {
return null;
}
const filterRegex = new RegExp(escapeRegExp(value), 'i');
- return (cellParams) => {
- const { formattedValue } = cellParams;
+ return (value, row, column, apiRef) => {
+ let formattedValue = apiRef.current.getRowFormattedValue(row, column);
return formattedValue != null ? filterRegex.test(formattedValue.toString()) : false;
};
};
- The Quick Filter now ignores hidden columns by default. See Including hidden columns section for more details.
Other exports
The deprecated constants
SUBMIT_FILTER_STROKE_TIMEandSUBMIT_FILTER_DATE_STROKE_TIMEare no longer exported. Use thefilterDebounceMsprop to customize filter debounce time.The
GridPreferencesPanelcomponent is not exported anymore as it wasn't meant to be used outside of the Data Grid.