如何在Angular 11中修复"maximum call stack size exceeded"错误?

4

我在Angular 11中有两个模块:

  1. CustomerModule
  2. AccountingModule

并且在这些模块中分别声明了一些组件作为小部件组件,这些小部件组件在彼此之间被使用:

  1. CustomerModule -> CustomerBlockInfoWidget
  2. AccountingModule -> AccountingBalanceWidget

现在我想在AccountingModule中使用CustomerBlockInfoWidget,而在CustomerModule中使用AccountingBalanceWidget。

但最终我遇到了无限加载并获得了“Maximum call stack size exceeded”错误。

现在我该如何使用这些小部件以修复无限加载问题?


将您的两个组件移动到一个“sharedModule”中,然后在任何模块中使用这些组件。只需在您想要使用这些组件的所需模块中导入“sharedModule”。 - Farhat Zaman
3个回答

5

请确保您没有在模块的导入数组中添加任何组件、指令和管道。

注意

您可以在模块的导入数组中添加独立的组件、指令和管道。


4

Maximum call stack size exceeded错误始终是无限循环的症状。提供的信息没有指向可能触发它的代码位置。

可能是一个没有退出机会的简单循环,或者像函数A调用函数B,函数B调用函数C,函数C调用函数A这样更复杂的情况。

如果您有错误的调用堆栈,阅读它应该足以注意到这个无限执行。


2
在我的情况下,我不小心包含了组件以导入而不是导出。被注释的部分引起了问题。 输入图像描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接