Ionic 3集成Angular Google Map(agm) TypeError问题求助
解决Ionic 3 + Angular 5中AGM地图FitBoundsService实例化的TypeError问题
你遇到的Uncaught (in promise): TypeError: Object(...) is not a function错误,核心原因是**@agm/core的新版本与你的Angular 5项目依赖的RxJS版本不兼容**。从@agm/core 1.0.0-beta.3开始,它引入了RxJS 6+的特性(比如pipeable操作符),而你的项目使用的Angular 5仅支持RxJS 5.x,这就导致了FitBoundsService实例化时的语法冲突。
下面是具体的解决步骤:
1. 降级到完全兼容的AGM版本
你需要卸载当前的@agm/core,安装明确支持Angular 5和RxJS 5.x的1.0.0-beta.2版本:
npm uninstall @agm/core npm install @agm/core@1.0.0-beta.2 --save
2. 确保依赖版本一致性
保持你的package.json中rxjs版本为5.5.11(不要尝试升级到RxJS 6,Angular 5无法兼容),同时确认@types/googlemaps版本锁定为3.30.16(你当前的配置是正确的,无需修改)。
3. 清理缓存并重建项目
Ionic项目的依赖缓存可能残留旧版本文件,导致错误无法消除,执行以下命令彻底清理并重建:
rm -rf node_modules rm package-lock.json npm install ionic cordova clean ionic build
额外注意事项
- 检查你地图页面中是否使用了
agm-fit-bounds指令或其他FitBounds相关API,确保其用法与@agm/core 1.0.0-beta.2的官方文档一致,避免因API变更引发的额外错误。 - 如果你之前为了适配RxJS 6安装过
rxjs-compat,请立即卸载它——Angular 5不需要这个兼容层,反而会引发更多依赖冲突。
内容的提问来源于stack exchange,提问作者Jafar Sabah
相关产品推荐
相关产品推荐

