nextjs怎么引入百度地图的,使用script,本地能加载到数据,生产环境报BMap is not defined?

nextjs怎么引入百度地图的,使用script,本地能加载到数据,生产环境报BMap is not defined
image.png!

本地打印windowimage.png
线上的windowimage.png

useEffect(() => {

console.log(window)  

}, [])

function LoadBaiduMapScript() {

//console.log("初始化百度地图脚本...");
const AK = '';
const BMap_URL = "https://api.map.baidu.com/api?v=2.0&ak=" + AK + "&s=1&callback=onBMapCallback";
return new Promise((resolve, reject) => {
    // 如果已加载直接返回
    if (typeof BMap !== "undefined") {
        resolve(BMap);
        return true;
    }
    // 百度地图异步加载回调处理
    window.onBMapCallback = function () {
        console.log("百度地图脚本初始化成功...");
        resolve(BMap);
    };
    // 插入script脚本
    let scriptNode = document.createElement("script");
    scriptNode.setAttribute("type", "text/javascript");
    scriptNode.setAttribute("src", BMap_URL);
    document.body.appendChild(scriptNode);
});

}
试试这个办法,可以

阅读 4.4k
2 个回答

排查一下,是不是因为异步的原因,在调用时,百度地图还没有初始化结束。

试试通过异步引进去呢

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题