Bing Maps V8 TypeScript包 - 未定义Microsoft

问题描述 投票:1回答:1

我想在我的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以包含所有必需的命名空间/模块?

reactjs typescript npm bing-maps
1个回答
0
投票

我之前并不熟悉Bing Maps或ASP.NET JavaScript prerendering,但这是我的研究结果。 bingmaps package只有类型声明。实际的实现是一个JavaScript文件(参见documentation),我猜测实现与prerendering不兼容。所以你需要:

  1. 通过从视图中删除asp-prerender-*中描述的documentation属性来完全禁用预渲染,或者
  2. 通过在if (typeof window !== 'undefined')描述的代码周围放置像here这样的测试,为这一个React组件跳过预渲染。
© www.soinside.com 2019 - 2024. All rights reserved.