我想在我的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以包括所有必需的名称空间/模块?
答案 0 :(得分:0)
我对Bing Maps或ASP.NET JavaScript预渲染没有事先的了解,但这是我的研究结果。 bingmaps
package仅具有类型声明。实际的实现来自JavaScript文件(请参见documentation),我猜测该实现与预渲染不兼容。因此,您需要:
通过从视图中删除documentation中描述的asp-prerender-*
属性来完全禁用预渲染,或者
通过针对here所述的代码进行类似if (typeof window !== 'undefined')
的测试,从而为该React组件跳过预渲染。