ngOnInit() {
this.detectChangeInterval = setInterval(
() => {
this.detectRef.detectChanges(); // detectRef is type ChangeDetectorRef
}, 2000);
}
// After leaving this page, I got: error_handler.js:47 EXCEPTION: Attempt to use a destroyed view: detectChanges
ngOnDestroy() {
if(this.detectChangeInterval) {
clearInterval(this.detectChangeInterval);
}
}
我认为异常意味着clearInterval(this.detectChangeInterval);
没有取消this.detectRef.detectChanges();
的递归调用
任何建议都将受到赞赏。
答案 0 :(得分:1)
我的建议是使用不同于默认angular2的生命周期事件。 Ionic2有自己的Page
生命周期事件,您可以使用它们。你可以看到那些here(滚动一下)。
ionViewDidLoad() {
this.detectChangeInterval = setInterval(() => {
this.detectRef.detectChanges(); // detectRef is type ChangeDetectorRef
}, 2000);
}
ionViewWillLeave() {
if(this.detectChangeInterval) {
clearInterval(this.detectChangeInterval);
}
}