【问题标题】:Angular 5 Material Table ExpressionChangedAfterItHasBeenCheckedErrorAngular 5 材质表 ExpressionChangedAfterItHasBeenCheckedError
【发布时间】:2018-09-02 06:41:25
【问题描述】:

在我的搜索组件中,我有一个带有属性绑定的表格组件

<app-attributes-table [data]="data"></app-attributes-table>

我的搜索服务返回一个自定义类型的 observable,搜索组件订阅并在更改处理程序中设置 this.data。这会更新作为搜索结果显示的表格组件中的数据变量。

this.searchService.getParts(this.search).subscribe(data => {
  this.data = data; 
}

完成后,表格组件会抛出以下错误:

表达式在检查后发生了变化。以前的值:'错误: 不明确的'。当前值:'错误:未定义'。好像景色 在其父级和子级都脏之后创建 检查。它是在变更检测钩子中创建的吗?

由于前一个值和当前值相同,为什么它认为表达式检查后发生了变化?也许这是一个错误。

【问题讨论】:

标签: angular angular5 angular-material2


【解决方案1】:

如果在视图初始化后在子组件中再次运行更改检测,则不会引发错误。我不确定我是否正确理解了该机制,这可能会完全绕过它。

constructor(private changeDetectorRef: ChangeDetectorRef) { }

ngAfterViewInit() {
   this.changeDetectorRef.detectChanges();
}

【讨论】:

    猜你喜欢
    • 2019-04-26
    • 1970-01-01
    • 1970-01-01
    • 2018-07-06
    • 2018-06-30
    • 2018-06-17
    • 2018-06-03
    • 2018-07-16
    • 2019-04-22
    相关资源
    最近更新 更多