我正在ExpressionChangedAfterItHasBeenCheckedError
使用 getter 和 BehaviorSubject(很有趣,对吗?)。
这是组件中的代码
private _windowHeight: string = '';
constructor( private stepService: StepService, private commonService: CommonService ) {
this.commonService.windowHeight.subscribe( ( height: number ) => {
this._windowHeight = height + 'px';
} );
}
@HostBinding( 'style.min-height' )
public get windowHeight(): string {
return this._windowHeight;
}
commonService.windowHeight
是一个 BehaviorSubject。在普通浏览器中运行此代码时,一切都很好。
当我尝试使用该组件运行单元测试时,我的问题就出现了。所有导入、声明和提供程序都很好,并且仍然可以通过这样的简单测试
it( 'should create', () => {
expect( component ).toBeTruthy();
} );
它抛出Error: ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: '0px'. Current value: '865px'.
这里可能是什么问题?环境:Angular 4.0.2、Angular CLI、业力、无头 Chrome。
谢谢!