Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular ChangeDetectionStrategy.OnPush不工作?_Angular_Angular6_Angular5_Angular8 - Fatal编程技术网

Angular ChangeDetectionStrategy.OnPush不工作?

Angular ChangeDetectionStrategy.OnPush不工作?,angular,angular6,angular5,angular8,Angular,Angular6,Angular5,Angular8,我有一个接受输入数据的组件: <vr-savefile-dialog (saveCallback)="saveCallback($event)" [title]="'Save profile'" [data]="getDefaultProfile()" [action]="action.Save" [type]="'profile'" ></vr-savefile-dialog> 据我所知:ChangeDetectionStrategy.OnPush

我有一个接受输入数据的组件:

<vr-savefile-dialog
  (saveCallback)="saveCallback($event)"
  [title]="'Save profile'"
  [data]="getDefaultProfile()"
  [action]="action.Save"
  [type]="'profile'"
></vr-savefile-dialog>
据我所知:ChangeDetectionStrategy.OnPush只有在输入数据被更改时才起作用。但对我来说不是

  public getDefaultProfile(): ProfileMenuItem {
    return this.profiles.find(profile => profile.isDefault);
  }

其中,
this.profiles
每次都会更改

您能否在代码中添加
getDefaultProfile()
,请再次查看您的父组件中也有
changedtectionstrategy.OnPush
?否,需要它?使用
console.log(this.profiles.find(profile=>profile.isDefault))
,你看到了同样的价值吗?
  public getDefaultProfile(): ProfileMenuItem {
    return this.profiles.find(profile => profile.isDefault);
  }