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

Angular升级AG Grid至v28提示withComponents属性不存在如何解决

报错产生原因

AG Grid 在 v28 版本做了破坏性更新,正式移除了 AgGridModule.withComponents() 这个静态API。这个方法是v27及更早版本中,用来提前向AG Grid注册自定义单元格渲染器、编辑器、过滤器等Angular组件的入口,升级到v28后原有写法找不到对应方法定义,就会抛出TS2339类型错误。

正确适配方案
  • 修改模块导入逻辑:删除原有调用withComponents传自定义组件列表的写法,直接将AgGridModule加入Angular模块的imports数组即可。
    新旧写法对比如下:

    v27及更早版本旧写法(v28已废弃)

    import { AgGridModule } from '@ag-grid-community/angular';
    
    @NgModule({
      imports: [
        AgGridModule.withComponents([CustomCellComp, CustomFilterComp])
      ],
      declarations: [CustomCellComp, CustomFilterComp]
    })
    export class AppModule {}
    

    v28及以上版本正确写法

    import { AgGridModule } from '@ag-grid-community/angular';
    
    @NgModule({
      imports: [
        AgGridModule
      ],
      declarations: [CustomCellComp, CustomFilterComp]
    })
    export class AppModule {}
    
  • 自定义组件无需提前在模块层面通过withComponents注册:只要你用到的自定义组件已经在当前Grid所属的Angular模块中声明,或者在独立组件场景下被正确导入,AG Grid就可以自动识别加载这些自定义组件,不需要额外传参给AgGridModule。

  • 适配注意点:禁止通过类型断言等方式强行调用已删除的withComponents方法,v28版本代码包中已经完全移除了该方法的实现,强行调用会触发运行时错误。如果升级后出现自定义组件无法渲染的问题,优先检查组件是否已经在对应Angular作用域内正确声明/导入即可。

内容的提问来源于stack exchange,提问作者Stephen Cooper

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 13:54:25