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

最新文章

  1. Js 常用函数
  2. Lucene 4.7 --创建索引
  3. Xcode 项目配置学习
  4. OpenGL的gluLookAt观察变换函数详解
  5. Destoon后台修改公司会员资料信息的必填项限制修改
  6. Chukwa
  7. Hdu 3410 【单调队列】.cpp
  8. 关于JSON.parse在ie6,ie7下未定义的issue
  9. 使用原始XML资源——使用原始XML文件
  10. [转]ubuntu下安装fiddler
  11. js将一个具有相同键值对的一维数组转换成二维数组
  12. java.util.concurrent包下并发锁的特点与适用场景
  13. TMS320DM642学习----第二篇(软件环境搭建+工程文件结构)
  14. 扫AR
  15. 抛弃百度UMEditor,拥抱summernote (解决上传文件又慢又卡的问题)
  16. (笔记)Ubuntu下安装arm-linux-gcc-4.4.3.tar.gz (交叉编译环境)
  17. Mongodb的入门(1)window安装mongodb
  18. Python实现类似JavaScript 的Json对象
  19. hybrid App h5二级页面返回的时候保持与一级页面浏览的位置一致
  20. sort排序和uniq统计命令

热门文章

  1. beego控制器介绍
  2. github的版本控制master和branch develop
  3. NOI Online能力测试游记:退役选手的自娱自乐
  4. pandas 将多个dataframe保存为一个excel文件的多个sheet表中
  5. JAVA将图片(本地或者网络资源)转为Base64字符串,将base64字符串存储为本地图片
  6. Spark学习之路 (一)Spark初识 [转]
  7. 852. spfa判断负环
  8. weblogic的ssrf漏洞
  9. Python发带附件的邮件
  10. OSI协议