Bing Maps V8 TypeScript程序包-未定义Microsoft

时间:2018-09-12 15:07:35

标签: reactjs typescript npm bing-maps

我想在我的react(打字稿)项目中使用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

如何正确导入BingMap以包括所有必需的名称空间/模块?

1 个答案:

答案 0 :(得分:0)

我对Bing Maps或ASP.NET JavaScript预渲染没有事先的了解,但这是我的研究结果。 bingmaps package仅具有类型声明。实际的实现来自JavaScript文件(请参见documentation),我猜测该实现与预渲染不兼容。因此,您需要:

  1. 通过从视图中删除documentation中描述的asp-prerender-*属性来完全禁用预渲染,或者

  2. 通过针对here所述的代码进行类似if (typeof window !== 'undefined')的测试,从而为该React组件跳过预渲染。