【问题标题】:Bing Maps V8 TypeScript package - Microsoft is not definedBing Maps V8 TypeScript 包 - 未定义 Microsoft
【发布时间】:2019-02-17 06:45:27
【问题描述】:

我想在我的反应(打字稿)项目中使用 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 以包含所有必要的命名空间/模块?

【问题讨论】:

  • 您找到解决方案了吗?我正在尝试使用 react 组件中的本机 bing maps v8 控件。

标签: reactjs typescript npm bing-maps


【解决方案1】:

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

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

  2. 按照here 所述,在代码周围放置一个类似if (typeof window !== 'undefined') 的测试,从而跳过仅针对这个React 组件的预渲染。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多