我在使用 Angular 6 应用程序时遇到问题:
假设我有 2 个组件:父组件和子组件。
孩子有2个输入。当 1 个输入发生变化时,在 ngOnChanges() 中,子组件向父组件发出一些东西。
然后父组件更改子组件的第二个输入。我希望再次调用子组件的更改检测 - 但事实并非如此。子组件的视图显示了第二个输入的旧值。
该申请有以下定义:
为了说明这个案例,我创建了一个简单的演示项目。在那里我不使用商店,所以我没有任何选择器......相反,我使用 rxjs Subject 来使用异步管道。
这里是:
https://angular-ccejq4.stackblitz.io
查看控制台以了解会发生什么以及何时发生。
我已经尝试过的:
我发现新值到达异步管道。然后异步管道调用 markForCheck()。但它不会调用detectChanges()..所以更改检测周期不会运行。视图只会在下一个更改检测周期时正确更改 - 正如您在我的演示应用程序中看到的那样。
有任何想法吗?
谢谢!
rxjs ngrx angular2-changedetection angular angular-changedetection