Parent 的 ngAfterViewInit 会一直在 child 的 ngAfterViewInit 之后运行吗?
<Parent>
<child></child>
<Parent>
从 parent 的 ngAfterViewInit 我向 child 发出一些数据。在 Child 的 ngAfterViewInit 中,我订阅了数据。但是订阅不是
触发。在我的例子中, child 是一个网格,它在 ngOnInit 中有大量的 api 调用。当我安慰登录时,我发现 Child 的 ngAfterViewInit 是
在父级的 ngAfterViewInit 之后运行。所以当我从
Parent 的 ngAfterViewInit Child 中的订阅者未配置为
它的 ngAfterViewInit 在我从父级发出有效载荷后运行。
最佳答案
是的,ngAfterViewInit
父组件将始终在子组件之后运行。
在 Angular 文档中,您可以找到 here关于 ngAfterViewInit
据说:
Respond after Angular initializes the component's views and child views, or the view that contains the directive.
所以如果我们相信文档,第一个
ngAfterViewInit
将始终从 View 的“最嵌套”可见组件部分调用。如果您不信任文档 :D 这里是 stackblitz打开控制台并观察。
关于组件间的数据传递,可以随时通过
@Input
传递数据事情很可能会奏效。编辑
我在您的评论中看到了附加信息,您可以通过使用
@ViewChild
从父组件与子组件进行交互的另一种方式。 , 如果您使用 @ViewChild
定位子组件您可以从父级 ngAfterViewInit
中的子级调用任何您需要的方法
关于angular - 父级的 ngAfterViewInit 与子级的 ngAfterViewInit,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68360062/