ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked.
ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked.
解决方案:
- 异步更新(建议使用)
- 强制进行变更检测,但是会触发子组件的变更检测,再次导致父组件属性改变
Parent.Component.ts
@Component({
selector:"app-parent"
})
export class ParentComponent implements OnInit,AfterViewInit {
public text = "给子组件的信息";
constructor(private cdr: ChangeDetectorRef){}
ngOnInit(){}
// 该方法缺点: 子组件多的情况下,不易控制。不建议使用
ngAfterViewInit(){
this.cdr.detectChanges();
}
}
Child.Component.ts
@Component({
selector:"app-child"
})
export class ChildComponent implements OnInit, AfterViewInit {
@Input text;
constructor(private parentComponent: ParentComponent){}
ngOnInit(){}
ngAfterViewInit() {
// 异步更新两种方式
// 第一种
setTimeout( ()=>{
this.parentComponent.text="update message"
},2000);
// 第二种
Promise.resolve(null).then( ()=> {this.parentComponent.text="update message"});
}
}
参考原文:https://blog.csdn.net/friend_ship/article/details/81773057
ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked.的更多相关文章
- 用ngif 多次判断 Expression has changed after it was checked
昨天遇到一个问题 ,用ng Expression has changed after it was checked 查了一下说在angular2中,这个错误只会在dev开发模式下出现,在pro发布版本 ...
- 关于ExpressionChangedAfterItHasBeenCheckedError
最近在stackoverflow上似乎每天都有一些关于angular报错‘ExpressionChangedAfterItHasBeenCheckedError’的问题.发生这些问题通常是由于angu ...
- 初入angular4——实际项目搭建总结
前言 接到一个pc端后台项目,还会加入两个安卓同事一起学习和做这个项目,需要带一下他们. 既ng1之后,我就没怎么有过其它后台框架的实际项目经验了,期间用的移动端框架也并非vue.angular系列. ...
- Angular变更检测策略报错
报错信息: ERROR Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was ...
- Angular 学习笔记 ( CDK - Accessibility )
@angular/ckd 是 ng 对于 ui 组建的基础架构. 是由 material 团队开发与维护的, 之所以会有 cdk 看样子是因为在开发 material 的时候随便抽象一个层次出来给大家 ...
- angular5自适应窗口大小
import {AfterViewInit, Directive, ElementRef, HostBinding, HostListener, Inject, Input, Renderer2} f ...
- vs2010 条件断点 has changed是什么意思?
在vs2010 断点设置 condition里,有2个选项可以选择: 一个是true,另个是has changed,true好理解,如果表达式为真则停止.但是has changed是什么意思.看了官网 ...
- Angular DirtyChecking(脏值检查) $watch, $apply, $digest
Dirty Checking (脏值检查) Digest cycle and $scope Digest cycle and $scope First and foremost, AngularJS ...
- [转]Date and String Function in BluePrism
本文转自:https://www.codeproject.com/Articles/1247389/Date-and-String-Function-in-BluePrism This article ...
随机推荐
- 使用Dockerfile构建镜像命令自己的理解
1.FROM 基于那个基础命令开始构建镜像,我的理解就是选择一个操作系统 2.CMD 里面放的是指定一个容器启动时要运行的命令 3.ENTRYPOINT 类似于CDM命令,不过 docker run ...
- MySQL优化(三)——主从复制
1.MySQL高可用 主从复制 一主多备 多主多备 2.MySQL主从复制 主机所有写的数据都会生成二进制SQL日志执行文件,从机只 ...
- 为什么在linux系统下安装anaconda的时候会报错
报错界面 一开始是在官网下载的最新的包,出现了上述的报错,但是换成清华镜像之后,就没有上述报错了? 我猜测可能是因为 官网最新的版本的anaconda和你安装的python版本不兼容,而在镜像上的不是 ...
- [tensorflow] tf.gather使用方法
tf.gather:用一个一维的索引数组,将张量中对应索引的向量提取出来 import tensorflow as tf a = tf.Variable([[1,2,3,4,5], [6,7,8,9, ...
- PL/SQL快键键——自动替换(输入sf直接跳出来select * from)
PL/SQL Developer使用技巧.快捷键 1.类SQL PLUS窗口:File->New->Command Window,这个类似于oracle的客户端工具sql plus,但比它 ...
- 类的成员和属性_python
一.字段和方法分类 方法分类: 二.属性(将方法伪装成字段) 三种伪装方式:@property @perr.setter @perr.deleter 属性使用的场景:分页 三.公有成员和私有成员 私 ...
- flutter loading
在发起请求时 需要有loading页面这样可以让用户知道当前正在操作,又可以防止多次点击等误操作,所以这里就自定义了一个loading页面 菊花使用flutter_spinkit里面的菊花来代替 在需 ...
- redis 列表类型list
列表类型(list)1.插入 左侧插入 :lpush key value1 value2 value3... 右侧插入: lpush key value1 value2 value3... 在指定元素 ...
- RN开发-ReactJS组件
虚拟DOM :将真实的DOM结构虚拟成json类型数据 props : 不可改变,用于数据传递 state : 组件属性,主要用来存储组件自身需要的数据,每次改变都会引起组件的更新 ...
- 二分-G - 4 Values whose Sum is 0
G - 4 Values whose Sum is 0 The SUM problem can be formulated as follows: given four lists A, B, C, ...