开发者问题收集

捕捉扩展:TypeError:无法读取未定义的属性(读取“克隆”)

2023-11-14
70

我们的 Web 应用程序正在使用 Snapping 扩展,正如 Petr Broz 的这篇 博客文章 中所示。我们创建了三个自定义捕捉工具,它们似乎都运行良好。但是,我们注意到该扩展正在从我们的生产环境中记录数千个异常(每次鼠标移动事件时)。

我们无法在开发环境中重现该异常...

我无法从堆栈跟踪中看出是我们的自定义工具导致了异常,还是它们源自 Autodesk 扩展。无论来源是什么,这似乎是一个内部错误,如果您能看看它就太好了:

TypeError: Cannot read properties of undefined (reading 'clone')
    at y.edgeSnapping (https://developer.api.autodesk.com/modelderivative/v2/viewers/7.93.*/extensions/Snapping/Snapping.min.js:17:11896)
    at y.meshSnapping (https://developer.api.autodesk.com/modelderivative/v2/viewers/7.93.*/extensions/Snapping/Snapping.min.js:17:7061)
    at y.snapping3DtoMesh (https://developer.api.autodesk.com/modelderivative/v2/viewers/7.93.*/extensions/Snapping/Snapping.min.js:17:7644)
    at y.snapping3D (https://developer.api.autodesk.com/modelderivative/v2/viewers/7.93.*/extensions/Snapping/Snapping.min.js:17:4681)
    at y.onMouseMove (https://developer.api.autodesk.com/modelderivative/v2/viewers/7.93.*/extensions/Snapping/Snapping.min.js:17:23212)
    at y.handleMouseMove (https://developer.api.autodesk.com/modelderivative/v2/viewers/7.93.*/extensions/Snapping/Snapping.min.js:17:22233)
    at l.__invokeStack (https://developer.api.autodesk.com/modelderivative/v2/viewers/7.93.*/viewer3D.min.js:18:1091171)
    at l.handleMouseMove (https://developer.api.autodesk.com/modelderivative/v2/viewers/7.93.*/viewer3D.min.js:18:1093668)
    at HTMLDivElement.mousemove (https://developer.api.autodesk.com/modelderivative/v2/viewers/7.93.*/viewer3D.min.js:18:1095126)
    at v.invokeTask (https://"our-domain"/polyfills.js:1:2333)
1个回答

edgeSnapping 方法中,有几个地方我们计算自定义 THREE.Vector3 对象并使用其 clone 方法克隆它。您能看到对此方法的哪些调用实际上失败了吗?

此外,如果您在生产中使用 viewer3D.min.js ,在开发中使用 viewer3D.js ,您也可以尝试在开发环境中切换到缩小版本,以查看是否存在与缩小本身相关的问题。

Petr Broz
2023-11-15