我正在使用角度材料步进器,功能按预期工作并出现以下错误:
问问题
692 次
2 回答
0
通常避免这种ExpressionChangedAfterItHasBeenCheckedError
情况的另一种方法是ChangeDetectionStrategy.OnPush
在您的组件中使用:
@Component({
selector: 'my-component',
templateUrl: '/path/to/my-component.html',
changeDetection: ChangeDetectionStrategy.OnPush,
})
export class MyComponent {}
使用 Push ChangeDetectionStrategy 的组件仅在显示的数据发生更改时才重新渲染 DOM,而不是在每个 Angular 更改检测周期重新渲染。因此,这节省了客户端的大量资源。
您可能要考虑通过对象引用传递的“缺点”@Input()
不会触发此组件的更改检测,因此最终需要使用 手动触发它ChangeDetectorRef
,但最终这种方法将导致更清晰的组件属性/数据流管理。
于 2020-04-19T10:15:09.850 回答
0
当您在 ngAfterInit 方法的开头更改值时,有时需要延迟。
setTimeout(() => {
//Code Here
x=Object //new value
}, 0);
setTimeout(() => {
//Code Here
});
这对我有用
于 2020-04-13T17:32:22.923 回答