You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ag-grid-react调用getSortModel()提示is not a function如何解决

问题原因

27.3.0版本的ag-grid完成了API拆分,和列状态、排序相关的getSortModel()方法从原GridApi迁移到了ColumnApi下,你在onSortChanged回调中通过e.api拿到的是GridApi实例,该实例上不存在这个方法,所以触发报错。

解决方法

直接在事件回调中取出columnApi实例调用对应方法即可,修正后的代码:

onSortChanged={useCallback(e => {
  console.log(e.columnApi.getSortModel(), 'im from sort')
}, [])}
排查兜底方案

如果修改后仍触发报错,按以下顺序排查:

  • 加可选链做边界容错,避免回调触发时API实例还未完成初始化的偶现问题:
onSortChanged={useCallback(e => {
  const sortModel = e?.columnApi?.getSortModel?.() ?? []
  console.log(sortModel, 'im from sort')
}, [])}
  • 打印事件对象上的e.api和e.columnApi,在控制台展开两个实例的方法列表,确认getSortModel的挂载位置,排除自定义封装、二次包装grid组件导致的API实例篡改问题。
  • 检查项目中是否存在多版本ag-grid依赖共存的情况,比如部分依赖拉取了26以下的老版本ag-grid造成API冲突,可以通过锁版本、清理node_modules重装依赖解决。
版本适配提示

如果后续将ag-grid升级到28.0及以上版本,getSortModel()方法会被正式废弃,需要通过columnApi.getColumnState()提取所有列的状态,再过滤出排序相关字段得到排序模型,27.3.0版本不需要做此适配。

内容的提问来源于stack exchange,提问作者KARTHIKEYAN.A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.30 02:36:19