Un def:无法使用伪造查看器编译反应应用程序-无法编译-Autodesk未定义un-def

我们想将我们的一些 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)
5

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>
...
0

我们通过在组件文件的第一行中放置一个全局来解决这个问题。基于this

/*global Autodesk*/

但是,我更喜欢这个,就在重要的后面。谢谢你,布莱恩。

const Autodesk = window.Autodesk;
0

我已经准备了一个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。

本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处

(362)
网页总自动关闭:自动关闭警报(alert auto close javascript)
上一篇
安全生产许可证样式:在生产构建中包括库许可证-angular
下一篇

相关推荐

发表评论

登录 后才能评论

评论列表(10条)