“ReferenceError: AMap is not defined“

问题

笔者进行web开发,引入高德地图,控制台报错

js 复制代码
"ReferenceError: AMap is not defined"

详细问题

vue.runtime.esm.js:4662 [Vue warn]: Error in mounted hook: "ReferenceError: AMap is not defined"

found in

---> <Map> at src/views/Map.vue
       <ElMain> at packages/main/src/main.vue
         <ElContainer> at packages/container/src/main.vue... (1 recursive calls)
           <Home> at src/views/Manage.vue
             <App> at src/App.vue
               <Root>
vue.runtime.esm.js:3104 ReferenceError: AMap is not defined
    at VueComponent.mounted (cjs.js?!./node_modul...cript&lang=js:28:20)
    at invokeWithErrorHandling (vue.runtime.esm.js:3072:61)
    at callHook$1 (vue.runtime.esm.js:4087:13)
    at Object.insert (vue.runtime.esm.js:4480:13)
    at invokeInsertHook (vue.runtime.esm.js:6999:38)
    at VueComponent.patch [as __patch__] (vue.runtime.esm.js:7213:9)
    at Vue._update (vue.runtime.esm.js:3824:25)
    at VueComponent.updateComponent (vue.runtime.esm.js:3930:16)
    at Watcher.get (vue.runtime.esm.js:3501:33)
    at Watcher.run (vue.runtime.esm.js:3577:30)

解决方案

将代码

js 复制代码
this.map = new AMap.Map("container", {
    center: [121.548181, 29.806906],
    zoom: 15,
    resizeEnable: true,
});

修改为

js 复制代码
setTimeout(() = >{
    this.map = new AMap.Map("container", {
        // center: [101.77, 36.62],
        center: [121.548181, 29.806906],
        zoom: 15,
        resizeEnable: true,
    });
},1000);

产生原因

错误信息 "ReferenceError: AMap is not defined" 表明在代码中使用了 AMap 对象,但该对象未被正确定义,导致引用错误。这通常是因为在代码执行时,AMap 对象尚未加载或者未正确引入所致。

异步加载问题: 在 Vue 生命周期的 mounted 钩子中直接初始化 AMap 对象,但是可能由于异步加载的原因,AMap 对象尚未被完全加载进来,导致引用错误。

解决原因

解决方法是在初始化 AMap 对象之前等待一段时间,确保 AMap 对象已经完全加载。这可以通过使用 setTimeout 函数来延迟执行初始化代码。

参考文献

vue项目使用高德地图时报错:AMap is not defined解决办法

产生原因与解释原因部分 部分内容参考chatgpt

原创不易

转载请标明出处

如果对你有所帮助 别忘啦点赞支持哈

相关推荐
还是鼠鼠1 小时前
图书管理系统 Axios 源码__编辑图书
前端·javascript·vscode·ajax·前端框架
北极象1 小时前
vue3中el-input无法获得焦点的问题
前端·javascript·vue.js
GISer_Jing2 小时前
react redux监测值的变化
前端·javascript·react.js
m0_528723812 小时前
react中useEffect的使用
前端·javascript·react.js
GISer_Jing2 小时前
AIGC时代的Vue或React前端开发
vue.js·react.js·aigc
customer083 小时前
【开源免费】基于SpringBoot+Vue.JS景区民宿预约系统(JAVA毕业设计)
java·vue.js·spring boot·后端·开源
Real_man3 小时前
noVNC 技术解析与最佳实践
javascript
大模型铲屎官3 小时前
HTML从入门到精通:链接与图像标签全解析
开发语言·前端·javascript·html·编程·链接标签·图像标签
大模型铲屎官3 小时前
HTML 列表标签全解析:无序与有序列表的深度应用
前端·javascript·html·有序列表·列表标签·无序列表
霸王蟹5 小时前
文本复制兼容方案最佳实现落地。
前端·javascript·vue.js·笔记·学习