diff --git a/packages/grid/x-data-grid/src/components/cell/GridEditDateCell.tsx b/packages/grid/x-data-grid/src/components/cell/GridEditDateCell.tsx index c007393b1ac9..26d39644bd13 100644 --- a/packages/grid/x-data-grid/src/components/cell/GridEditDateCell.tsx +++ b/packages/grid/x-data-grid/src/components/cell/GridEditDateCell.tsx @@ -158,7 +158,7 @@ function GridEditDateCell(props: GridEditDateCellProps) { const handleInputRef = (el: HTMLInputElement) => { inputRef.current = el; - if (meta.unstable_updateValueOnRender && !hasUpdatedEditValueOnMount.current) { + if (meta?.unstable_updateValueOnRender && !hasUpdatedEditValueOnMount.current) { const inputValue = inputRef.current.value; const parsedDate = parseValueToDate(inputValue); setValueState({ parsed: parsedDate, formatted: inputValue }); diff --git a/packages/grid/x-data-grid/src/components/cell/GridEditInputCell.tsx b/packages/grid/x-data-grid/src/components/cell/GridEditInputCell.tsx index e1d1b6f51b88..4dfad75a898f 100644 --- a/packages/grid/x-data-grid/src/components/cell/GridEditInputCell.tsx +++ b/packages/grid/x-data-grid/src/components/cell/GridEditInputCell.tsx @@ -106,15 +106,13 @@ const GridEditInputCell = React.forwardRef { - if (meta.changeReason !== 'debouncedSetEditCellValue') { + if (meta?.changeReason !== 'debouncedSetEditCellValue') { setValueState(value); } - }, [meta.changeReason, value]); + }, [meta, value]); useEnhancedEffect(() => { if (hasFocus) { diff --git a/packages/grid/x-data-grid/src/hooks/features/editing/useGridEditing.ts b/packages/grid/x-data-grid/src/hooks/features/editing/useGridEditing.ts index 8c95081defff..56e3ba6096de 100644 --- a/packages/grid/x-data-grid/src/hooks/features/editing/useGridEditing.ts +++ b/packages/grid/x-data-grid/src/hooks/features/editing/useGridEditing.ts @@ -157,7 +157,7 @@ export const useGridEditing = ( const getEditCellMeta = React.useCallback( (id, field) => { const editingState = gridEditRowsStateSelector(apiRef.current.state); - return editingState[id][field]; + return editingState[id]?.[field] ?? null; }, [apiRef], ); diff --git a/packages/grid/x-data-grid/src/models/api/gridEditingApi.ts b/packages/grid/x-data-grid/src/models/api/gridEditingApi.ts index bf5c3208727f..314062501897 100644 --- a/packages/grid/x-data-grid/src/models/api/gridEditingApi.ts +++ b/packages/grid/x-data-grid/src/models/api/gridEditingApi.ts @@ -57,7 +57,7 @@ export interface GridEditingSharedApi { * @param {string} field The field being edited. * @ignore - do not document. */ - unstable_getEditCellMeta: (id: GridRowId, field: string) => GridEditCellMeta; + unstable_getEditCellMeta: (id: GridRowId, field: string) => GridEditCellMeta | null; } export interface GridEditingSharedPrivateApi {