我们想将我们的一些 forge 查看器代码库移动到一个 react-app 中,并且无法弄清楚如何使用 viewer3d js api 而不附加所有的 Autodesk.Viewer....在我们的带有窗口的组件中使用。* 这适用于我们研究过的所有 (优秀和广泛的) git 示例。为什么?我们在和 react 登陆之间的 index.html 中加载 viewer3d.js 文件:
<body>
<script src="https://developer.api.autodesk.com/derivativeservice/v2/viewers/viewer3D.js?v=6.0" />
<div id="root" />
我们得到的错误(对于 Autodesk 命名空间的每个使用实例):
Failed to compile
./src/components/Viewer.js
Line **: 'Autodesk' is not defined no-undef
这个作品:
this.viewer = new window.Autodesk.Viewing.Private.GuiViewer3D(this.viewerContainer)
这是行不通的:
this.viewer = new Autodesk.Viewing.Private.GuiViewer3D(this.viewerContainer)
如user guide中所述,您需要从窗口中明确读取任何全局变量。将其放在文件的顶部,它将工作:
const Autodesk = window.Autodesk;
并且建议您将脚本标记拉到应用程序条目 html 的标题部分,以确保在 React 发出之前加载它:
<!DOCTYPE html>
<html lang="en">
<head>
...
<script src="https://developer.api.autodesk.com/derivativeservice/v2/viewers/viewer3D.js?v=6.0" />
</head>
...
我们通过在组件文件的第一行中放置一个全局来解决这个问题。基于this。
/*global Autodesk*/
但是,我更喜欢这个,就在重要的后面。谢谢你,布莱恩。
const Autodesk = window.Autodesk;
我已经准备了一个autodesk-forge-viewer类型模块,您可以在编译期间使用它来验证类型。
它是这样使用的:
import Autodesk from 'autodesk-forge-viewer';
const autodesk: typeof Autodesk = (window as any).Autodesk;
对于类型 latest TypeScript 的某些限制,类型将为Autodesk,值将为autodesk,因此以下是创建 Viewer 实例的代码:
const viewer: Autodesk.Viewing.Private.GuiViewer3D = new autodesk.Viewing.Private.GuiViewer3D(viewerContainer);
请注意,autodesk-forge-viewer模块不包含 Viewer 实现,因此您仍然必须将 viewer3D.js 脚本添加到 index.html。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(10条)