无法在 viewer3D.js 中读取 null 的属性“updateMaterials”
Posted
技术标签:
【中文标题】无法在 viewer3D.js 中读取 null 的属性“updateMaterials”【英文标题】:Cannot read property 'updateMaterials' of null in viewer3D.js 【发布时间】:2018-12-25 00:07:06 【问题描述】:尝试在 Angular2 中销毁查看器时出现类型错误。
为此我尝试了这段代码,
ngOnDestroy()
if (this.viewer && this.viewer.running)
this.viewer.tearDown();
this.viewer.finish();
this.viewer = null;
但出现如下错误:
TypeError: Cannot read property 'updateMaterials' of null
at tick (viewer3D.js:27154)
at animloop (viewer3D.js:27631)
at ZoneDelegate.invokeTask (zone.js:356)
at Object.onInvokeTask (node_modules/@angular/core//bundles/core.umd.js:9091)
at ZoneDelegate.invokeTask (zone.js:355)
at Zone.runTask (zone.js:256)
at ZoneTask.invoke (zone.js:423)
如何使用 Angular2 解决此问题?
【问题讨论】:
this.viewer 是什么? "this.viewer" 是伪造查看器的实例。 【参考方案1】:请查看this answer。此外,您可能还需要.impl.unloadCurrentModel()
【讨论】:
@RuhamaDavid 我尝试了您的原始代码,并且工作正常。我猜您的 Angular 代码仍在尝试访问查看器并导致此错误(渲染时发生 updateMaterials)。另一个答案建议当您在 SPA 上的状态/页面之间导航时保持查看器运行。以上是关于无法在 viewer3D.js 中读取 null 的属性“updateMaterials”的主要内容,如果未能解决你的问题,请参考以下文章
Vue 错误:未捕获(在承诺中)TypeError 无法读取 null 的属性(读取“地址”)
无法在引导程序 5 toast 中读取 null 的属性(读取“defaultPrevented”)