Angular14升级后Kendo Data Grid加载数据报错,求排查是否为包版本问题
问题:Angular 14升级后Kendo Grid加载数据报错
升级Angular至14版本后,使用Kendo Grid加载数据时出现如下错误,请判断是否为包版本问题:
报错信息
TypeError: Cannot read properties of undefined (reading 'add') at ListComponent.ngOnInit (index.js:11229:28) at callHook (core.mjs:2491:22) at callHooks (core.mjs:2460:17) at executeInitAndCheckHooks (core.mjs:2411:9) at selectIndexInternal (core.mjs:9854:17) at Module.ɵɵadvance (core.mjs:9837:5) at GridComponent_ng_template_5_Template (index.js:154:5) at executeTemplate (core.mjs:12113:9) at refreshView (core.mjs:11998:13) at refreshEmbeddedViews (core.mjs:13026
package.json依赖配置
{ "@progress/kendo-angular-buttons": "latest", "@progress/kendo-angular-common": "latest", "@progress/kendo-angular-dateinputs": "latest", "@progress/kendo-angular-dropdowns": "latest", "@progress/kendo-angular-excel-export": "latest", "@progress/kendo-angular-grid": "latest", "@progress/kendo-angular-inputs": "latest", "@progress/kendo-angular-intl": "latest", "@progress/kendo-angular-l10n": "latest", "@progress/kendo-angular-layout": "latest", "@progress/kendo-angular-pdf-export": "latest", "@progress/kendo-angular-popup": "latest", "@progress/kendo-angular-tooltip": "latest", "@progress/kendo-angular-treeview": "latest", "@progress/kendo-angular-upload": "latest", "@progress/kendo-data-query": "latest", "@progress/kendo-drawing": "latest", "@progress/kendo-file-saver": "latest", "@progress/kendo-theme-bootstrap": "latest", "@progress/kendo-theme-default": "latest", "rxjs": "^7.4.0", "rxjs-compat": "^6.2.2" }
版本问题判断及解决建议
核心问题点
rxjs版本不兼容:Angular 14要求rxjs版本至少为
^7.5.0,当前使用的^7.4.0版本偏低;同时引入的rxjs-compat@6.2.2是rxjs 6的兼容包,与rxjs 7及Angular 14存在版本冲突,会导致依赖链中的对象未正确初始化,触发Cannot read properties of undefined错误。Kendo组件版本一致性风险:Kendo Angular从6.0.0版本开始正式支持Angular 14,若通过
latest拉取的版本低于此,会出现框架API不兼容问题;另外不同Kendo组件用latest可能导致版本不一致,引发内部依赖冲突。
解决步骤
- 移除
rxjs-compat依赖,Angular 14和最新版Kendo组件均基于rxjs 7开发,无需兼容rxjs 6的适配包 - 将rxjs版本升级至
^7.5.0或更高稳定版,匹配Angular 14的要求 - 统一指定Kendo Angular组件版本为兼容Angular 14的稳定版(如
^6.0.0或更高),避免latest标签带来的版本不一致问题 - 清理
node_modules和package-lock.json后,重新执行npm install确保依赖完全更新
内容的提问来源于stack exchange,提问作者Prithvi
相关产品推荐
相关产品推荐

