简体   繁体   English

为什么更改NgOninit上的父级数据不会导致ExpressionChangedAfterItHaHasBeenCheckedError?

[英]Why does changing a parents data on NgOninit not cause ExpressionChangedAfterItHasBeenCheckedError?

Under this example 在这个例子下

parentComponent {
  text = 'dsfsdf';
}

childComponent implements Oninit {
    @Input() text;
   ngOnInit() {
     this.text = 'something else';
    }
}

why does this not cause ExpressionChangedAfterItHasBeenCheckedError please? 为什么这不会引起ExpressionChangedAfterItHasBeenCheckedError? And what is a simple way of getting this error to occur? 发生此错误的简单方法是什么?

This won't trigger an ExpressionChangedAfterItHasBeenCheckedError because changing the value of an @Input parameter does not trigger any event to the parent and so it just doesn't re-render at all. 这不会触发ExpressionChangedAfterItHasBeenCheckedError因为更改@Input参数的值不会触发任何事件给父对象,因此它根本不会重新呈现。

A simple way to make this error occur: 发生此错误的简单方法:

<div>{{functionThatReturnsDifferentValueOnEveryCall()}}</div>

...

count = 0;

functionThatReturnsDifferentValueOnEveryCall() {
   return count++;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 ngOnInit中的ExpressionChangedAfterItHasBeenCheckedError - ExpressionChangedAfterItHasBeenCheckedError in ngOnInit 带有Promise的ngOnInit上的ExpressionChangedAfterItHasBeenCheckedError - ExpressionChangedAfterItHasBeenCheckedError on ngOnInit with Promise Angular ExpressionChangedAfterItHasBeenCheckedError 仅在 ngOnInit() 中 - Angular ExpressionChangedAfterItHasBeenCheckedError only in ngOnInit() ExpressionChangedAfterItHasBeenCheckedError原因 - ExpressionChangedAfterItHasBeenCheckedError cause 在 ngOnInit 中添加验证器时的 ExpressionChangedAfterItHasBeenCheckedError - ExpressionChangedAfterItHasBeenCheckedError when add validator in ngOnInit Angular 8 上的 ExpressionChangedAfterItHasBeenCheckedError 和在 ngOnInit 上调用的方法 - ExpressionChangedAfterItHasBeenCheckedError on Angular 8 and method called on ngOnInit 从ngOnInit调度操作时ExpressionChangedAfterItHasBeenCheckedError - ExpressionChangedAfterItHasBeenCheckedError when dispatching action from ngOnInit 为什么 ngOnInit() 会为 setInterval() 执行多次? - why does ngOnInit() execute multiple times for setInterval()? 为什么容器大小设置在ngOnInit上不起作用? - Why does the container size setting not working on ngOnInit? 角度2管道绑定导致ExpressionChangedAfterItHaHasBeenCheckedError - Angular 2 Pipe Binding Cause ExpressionChangedAfterItHasBeenCheckedError
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM