I'm trying to get sort model from ag-grid-react component using getSortModel() but I'm getting getSortModel is not a function
my code
onSortChanged={useCallback(e => console.log(e.api.getSortModel(), 'im from sort'))}
"@ag-grid-community/react": "27.3.0", "@ag-grid-enterprise/all-modules": "27.3.0",
After spend some time found params.api.getSortModel()
is deprecated after version 24.0.0.
Using Column state for get Sort model and set Sort model in the following way
getSortModel:
const onSortChanged = useCallback(() => {
const value = gridParams.columnApi.getColumnState().find(s => s.sort != null)
if (value) {
setSortModel([ value ])
} else {
setSortModel([])
}
}, [ gridParams, setSortModel ])
setSortModel:
useEffect(() => {
if (sortModel.length > 0) {
const curretSortModel = gridParams.columnApi.getColumnState()
const mergeSortModel = curretSortModel.map(o1 => sortModel.find(o2 => o2.colId === o1.colId) || o1)
gridParams.columnApi.setColumnState(mergeSortModel)
}
}, [gridParams, sortModel]
we are setting gridParems using onGridReady() method
const [ gridParams, setGridParams ] = useState()
const onGridReady = useCallback(params => {
setGridParams(params)
}, [])
<Grid
onGridReady={onGridReady} // using this we are setting gridParams
rowData={dataset}
floatingFilter
sideBar={GRID_SIDE_BAR}
onSelectionChanged={getSelectedRowData}
enableSelect={true}
onFilterChanged={onFilterChanged}
onSortChanged={onSortChanged}
rowSelection={'multiple'}
licenseKey={'test'}
getRowId={getRowNodeId}
onColumnVisible={onColumnVisible}
onColumnResized={onColumnResized}
onColumnMoved={onColumnMoved}
columnDefs={mappedColDefs}
defaultColDef={defaultColDef}
cacheQuickFilter={true}
frameworkComponents={{
customLoadingOverlay: () => <Paper><Typography>Please wait while your requests are loading...</Typography></Paper>,
customNoRowsOverlay: () => <Paper><Typography>No requests found</Typography></Paper>
}}
loadingOverlayComponent={'customLoadingOverlay'}
noRowsOverlayComponent={'customNoRowsOverlay'}
/>