为啥 ngAfterContentInit 钩子被调用两次?

Posted

技术标签:

【中文标题】为啥 ngAfterContentInit 钩子被调用两次?【英文标题】:Why ngAfterContentInit hook is called twice?为什么 ngAfterContentInit 钩子被调用两次? 【发布时间】:2017-07-19 05:45:26 【问题描述】:

根据文档,ngAfterContentInit 在第一次 NgDoCheck 之后仅调用一次,但在我的情况下执行了两次,我找不到发生这种情况的原因。关于为什么这个钩子可以被执行两次或任何已知的可能导致这种情况的副作用的任何想法?

【问题讨论】:

如果不看你在做什么就很难说。你能在 Plunker 中复制吗? 请发布一些有错误的代码 不能贴这么多行代码,也没有错误。我只是把这个钩子调用了两次,导致视图副作用。 【参考方案1】:

我偶尔会遇到同样的问题,这通常是由模板中的错误代码引起的。如果它不是由您刚刚更改的最后一件事引起的,可能很难追查。

这个问题是关于ngOnInit:why ngOnInit called twice?,但我相信问题是一样的。 另见https://github.com/angular/angular/issues/6782

【讨论】:

以上是关于为啥 ngAfterContentInit 钩子被调用两次?的主要内容,如果未能解决你的问题,请参考以下文章

Nest.js/Mongoose:为啥我的预保存钩子无法触发?

ngAfterViewInit() 和 ngAfterViewChecked() 有啥区别?

为啥 jest 不能为我正在测试的自定义 React 钩子提供 useTranslation 钩子?

为啥 Jest 抛出“无效的钩子调用”?

为啥自定义钩子的回调永远看不到组件道具

为啥在 React 中使用 useImperitaveHandle 钩子?