Ag-Grid升级后GridReadyEvent无columnApi及Api无setDatasource问题咨询
AG Grid v30 → v32 升级后的类型错误解决方案
1. GridReadyEvent 不存在 columnApi 属性
移除原因
AG Grid 在 v31 版本重构了事件模型,将 columnApi 从 GridReadyEvent 中移除,统一通过 Grid API 实例访问 Column API,以此简化事件结构并保持 API 一致性。
替代方案
直接从事件的 api 对象中获取 columnApi:
onGridReady({ api }: GridReadyEvent): void { this.gridApi = api; this.gridColumnApi = api.columnApi; // 从api实例中获取columnApi // ... 后续代码 }
2. GridApi 不存在 setDatasource 方法
移除原因
AG Grid 在 v31 版本中废弃了 setDatasource 方法,改用统一的 setGridOption 方法配置网格选项(包括数据源),让所有网格配置的修改方式保持一致,避免分散的 API 方法。
替代方案
使用 api.setGridOption('datasource', dataSource) 替代原有的 api.setDatasource(dataSource):
this.leads$ .pipe( filter((data) => !!data), takeUntil(this.destroyed$) ) .subscribe((data) => { const dataSource: IDatasource = { rowCount: null, getRows: ({ successCallback }) => successCallback(data, data.length), }; api.setGridOption('datasource', dataSource); // 替换为统一的setGridOption方法 });
如果你的网格使用客户端行模型(Client-Side Row Model),直接使用 api.setRowData(data) 会更简洁,无需构建 IDatasource 对象。
内容的提问来源于stack exchange,提问作者Alireza Ahmadi
相关产品推荐
相关产品推荐

