我在材质上使用 angular 10,我收到了这个错误 ExpressionChangedAfterItHasBeenCheckedError: Expression has changed afte
Posted
技术标签:
【中文标题】我在材质上使用 angular 10,我收到了这个错误 ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked [关闭]【英文标题】:I'm using angular 10 with material, I got this error ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked [closed] 【发布时间】:2021-02-22 09:58:39 【问题描述】:这是 Angular html 代码,我认为问题是由调用到我的视图enter image description here 的输入组件(应用程序产品)引起的
【问题讨论】:
***.com/questions/34364880/… 【参考方案1】:此错误仅在开发模式下引发,您不会在生产中看到它。 当您的输入值在 Angular 更改检测生命周期完成之前发生更改时,就会发生这种情况。
尽管据我所知它没有任何副作用,但您可能希望将您的子组件(在此特定示例中为 app-product)ChangeDetectionStrategy 更改为 OnPush,这将强制 Angular 仅检查当您的输入值之一发生变化时发生变化。
【讨论】:
感谢您的回答,两种方法我都试过了,效果很好【参考方案2】:如果您要更新 ngAfterViewInit() 内的角度变化监听变量的值, 如果存在,将该代码移至 ngOnInit() 或在 ngAfterViewInit
中使用 setTimeout【讨论】:
感谢您的回答,两种方法我都试过了,效果很好。以上是关于我在材质上使用 angular 10,我收到了这个错误 ExpressionChangedAfterItHasBeenCheckedError: Expression has changed afte的主要内容,如果未能解决你的问题,请参考以下文章
Angular:全局 ErrorHandler 中的多种材质小吃吧
Angular 10 - 对 Angular 材质使用 bootstrap-toggle 样式
Angular 8 和 Angular 材质:使用 CdkDropList 项拖动滚动