角度错误类型错误:无法读取未定义的属性(读取“onDestroy”)

J4m*_*Max 29 modularization typescript angular

我有问题。Angular 有时会显示错误 ERROR TypeError:无法读取未定义的属性(读取“onDestroy”)

当我运行 ngserve 时,我收到此错误,但如果我使用 Angular Universal,则页面有时会正确加载,有时会显示相同的错误。我发现,当我开始对我的应用程序进行模块化时,这个错误就开始了。

角度版本 13.3

小智 87

我遇到过同样的问题。尝试删除该.angular目录!为我工作。

  • 确切地说,删除 .angular 并重新运行“ng s”。多谢! (2认同)
  • 令人兴奋,谢谢@Faisal Alashir。这个解决方案也对我有用......但这背后的原因是什么?为什么它一开始就抛出错误? (2认同)
  • 我想这背后的原因与不再存在的编译代码有关,这就是它发生的原因。删除“.angular”更像是删除“缓存”,这使得下一个“ngserve”保持新鲜。 (2认同)

J4m*_*Max 1

我找到了这个困难且非典型错误的解决方案。如果您没有完成模块化,但部分代码用作模块,部分用作组件导入,则会发生这种情况。

未模块化且在 app.component.html 中使用的组件与

<router-outlet></router-outlet>
Run Code Online (Sandbox Code Playgroud)

导致此错误。

对于我的例子来说是

<app-navbar></app-navbar>
Run Code Online (Sandbox Code Playgroud)

有什么好笑?如果您遇到此错误,并将其添加到导航栏 fe<div></div>然后将其删除,应用程序将开始正常工作。

解决办法是什么?您必须正确模块化 app.component.html 中使用的所有组件。