我想在我的react(typescript)项目中使用BingMaps。我安装了npm bingmaps包,它带来了必要的d.ts.
我通过以下方式导入模块:
import 'bingmaps';
在我的组件内部,我执行以下操作:
public componentDidMount(){
var map = new Microsoft.Maps.Map('#map',
{
credentials: 'XXXXX',
maxZoom: 6,
minZoom: 2,
});
};
此时我的应用程序抛出以下错误:
Microsoft.AspNetCore.NodeServices.HostingModels.NodeInvocationException:由于错误,预呈现失败:ReferenceError:未定义Microsoft
如何正确导入BingMaps以包含所有必需的命名空间/模块?
我之前并不熟悉Bing Maps或ASP.NET JavaScript prerendering,但这是我的研究结果。 bingmaps
package只有类型声明。实际的实现是一个JavaScript文件(参见documentation),我猜测实现与prerendering不兼容。所以你需要:
asp-prerender-*
中描述的documentation属性来完全禁用预渲染,或者if (typeof window !== 'undefined')
描述的代码周围放置像here这样的测试,为这一个React组件跳过预渲染。