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