nextjs怎么引入百度地图的,使用script,本地能加载到数据,生产环境报BMap is not defined!
本地打印window
线上的window
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);
});
}
试试这个办法,可以
排查一下,是不是因为异步的原因,在调用时,百度地图还没有初始化结束。