gpt4 book ai didi

angular - ExpressionChangedAfterItHasBeenCheckedError 解释

转载 作者:太空狗 更新时间:2023-10-29 16:44:09 25 4
gpt4 key购买 nike

请向我解释为什么我不断收到此错误:ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked.

显然,我只在开发模式下得到它,它不会在我的生产构建中发生,但它非常烦人,我根本不明白在我的开发环境中出现错误的好处不会出现生产上——可能是因为我缺乏理解。

通常,修复很简单,我只是将导致错误的代码包装在 setTimeout 中,如下所示:

setTimeout(()=> {
this.isLoading = true;
}, 0);

或者使用这样的构造函数强制检测变化:constructor(private cd: ChangeDetectorRef) {}:

this.isLoading = true;
this.cd.detectChanges();

但为什么我总是遇到这个错误?我想了解它,以便将来可以避免这些 hacky 修复。

最佳答案

我遇到了类似的问题。看着 lifecycle hooks documentation ,我将 ngAfterViewInit 更改为 ngAfterContentInit 并且它起作用了。

关于angular - ExpressionChangedAfterItHasBeenCheckedError 解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43375532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com