【发布时间】:2020-01-06 17:14:16
【问题描述】:
我有一个带有两条路线的导航栏。每条路由都将我带到一个组件,onInit 发出一个 http 请求以获取要在表格中显示的信息。如果 http 是 200 但没有信息,我会调用具有 matsnackbars 的 service,并发出 matsnackbar.open(blabla) 以显示“嘿,这里没有信息”的警报
问题是当我在这 2 条路线之间快速切换时,我得到了这个错误
ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: '@state: undefined'. Current value: '@state: void'. It seems like the view has been created after its parent and its children have been dirty checked. Has it been created in a change detection hook ?
我尝试将snackbar 调用放在其他一些生命周期挂钩中,但我得到了同样的错误或无限循环。
谢谢。
【问题讨论】:
-
您尝试过使用哪些其他生命周期挂钩?并请发布您的模板和 ts 代码。
标签: angular angular-material angular6