我有这个组件。我想在第一次@Input
更改时做一些事情。问题是changes.firstChange
总是错误的(在初始化和更改之后)。
@Component({
changeDetection: ChangeDetectionStrategy.OnPush,
selector: 'test',
templateUrl: './t.component.html',
styleUrls: ['./t.component.css']
})
export class TComponent implements OnChanges {
@Input()
myValue: string;
ngOnChanges(changes: SimpleChanges) {
console.log('myValue: ', changes.myValue.isFirstChange()); // always false
console.log('myValue: ', changes);
}
}
为了使用它,我正在做:
myValue = of('1').pipe(
delay(2000),
// startWith('2')
)
我也试过:
myValue = '1'
<test [myValue]="myValue | async "></test>
// 使用时of
正如您在图像中看到的那样changes.firstChange
,无论我稍后传递一个字符串还是一个新值,它总是错误的。
这是使用 rxjs 值时的输出:(value changed but never changed firstChange to true