ag-grid-react: getSortModel不是函数



我试图使用getSortModel()从ag-grid-react组件获得排序模型,但我得到getSortModel不是一个函数

我的代码
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",

经过一段时间后发现params.api.getSortModel()在24.0.0版本之后已弃用。

使用列状态获取排序模型和设置排序模型

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]

根据这个plunkr,您可以使用以下示例检索和应用排序:https://plnkr.co/edit/?open=index.jsx&preview

const sortByAthleteDesc = useCallback(() => {
gridRef.current.columnApi.applyColumnState({
state: [{ colId: 'athlete', sort: 'desc' }],
defaultState: { sort: null },
});
}, []);

const saveSort = useCallback(() => {
var colState = gridRef.current.columnApi.getColumnState();
var sortState = colState
.filter(function (s) {
return s.sort != null;
})
.map(function (s) {
return { colId: s.colId, sort: s.sort, sortIndex: s.sortIndex };
});
savedSort = sortState;
console.log('saved sort', sortState);
}, []);

最新更新