当前位置: 首页 > 知识库问答 >
问题:

ExpressionChangedAfterItHasBeenCheckedError解释

伏子辰
2023-03-14

请向我解释为什么我总是得到这个错误:expressionchangedafterithasbeencheckederror:Expression在检查后发生了更改。

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

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

或者强制使用如下构造函数检测更改:构造函数(private cd:ChangeDetectorRef){}:

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

但是为什么我总是遇到这个错误呢?我想了解它,这样我就可以避免这些黑客修复在未来。

共有1个答案

花阳辉
2023-03-14

我也有类似的问题。在查看生命周期挂钩文档时,我将ngAfterViewinit更改为ngAfterContentInit并成功了。

 类似资料:
  • 我有一个将文件上传到数据库的组件。当文件上传时,我显示一个覆盖图,显示所选文件的数量和成功上传的文件数量。 我希望当上传的文件数量等于选择的文件数量时,覆盖图自动关闭。但是,我的实现导致了以下结果: expressionchangedafterithasbeencheckedererror:检查后表达式已更改。以前的值:“ngIf: true”。当前值:“ngIf: false” 当选择上传文件时

  • 我为我的应用程序中的所有请求创建了一个组件加载和一个拦截器,加载会出现在屏幕上,直到请求完成为止。然而,每当路由器出口的组件发生变化时,我就会得到一个错误。你能帮帮我吗? 我的错误: 错误错误:ExpressionChangedAfterithasBeenCheckedError:表达式在检查后已更改。前一个值:“未定义”。当前值:“true”。似乎视图是在父视图和子视图进行了脏检查之后创建的。它

  • 我在组件的列表中显示了一个项目数组。项目的属性之一是描述字段,其范围可以从一个单词到几个句子。 当描述太长,我想截断它,并显示一个按钮,将显示点击时的完整文本。是否截断和显示按钮的条件基于返回布尔值的函数: 然后我从组件的模板端使用这个函数,如下所示(ngFor的一小部分): 这里使用的CSS很简单: 目前,该行为非常偶然,我在控制台中收到错误: expressionchangedafterith

  • 问题内容: 我已经阅读了一些博客和一些与优化有关的文章,介绍了如何优化查询。我读到我需要使用索引,并确保使用良好的关系数据库架构正确设置了所有主键和外键。 现在,我有一个查询需要优化,并且可以在上获得此查询: 我正在使用MySQL 5.5 我知道我正在使用但不使用我的临时表或文件排序吗?这是什么意思? 问题答案: 使用临时意味着MySQL需要使用一些临时表来存储执行查询时计算出的中间数据。 使用文

  • 问题内容: 为简单起见,请设想这种情况,我们有一台2位计算机,它具有一对称为r1和r2的2位寄存器,并且仅适用于立即寻址。 假设位序列 00 表示 添加 到我们的CPU中。也 01 的装置将数据移动到R 1和 10组 的装置将数据移动到R2。 因此,这台计算机和一个汇编器都有一种汇编语言,其中的示例代码将像 简而言之,当我将此代码汇编成本地语言时,文件将类似于: 上面的12位是以下代码的本机代码:

  • @Required注解应用于bean属性的setter方法,它表明影响的bean属性在配置时必须放在XML配置文件中。 十九、请举例说明@Qualifier 注解? 如果在xml中定义了一种类型的多个bean,同时在java注解中又想把其中一个bean对象作为属性,那么此时可以使用@Qualifier加@Autowired来达到这一目的,若不加@Qualifier这个注解,在运行时会出现“ No