【问题标题】:Ionic 3 LoadingController removeView was not found找不到 Ionic 3 LoadingController removeView
【发布时间】:2019-05-07 16:42:14
【问题描述】:
我正在制作一个 ionic 3 应用程序,并希望在每个导航中添加一个加载微调器。所以我创建了一个 loadingService 并将其添加到我的 navigationService 中,以便自动处理所有导航。
为了启动和停止加载程序,我使用了:
export class LoaderService{
loading: Loading;
constructor(public loadingCtrl: LoadingController ){
this.loading = this.loadingCtrl.create({
spinner: 'crescent'
})
}
startLoader(){
this.loading.present();
}
stopLoader(){
this.loading.dismiss();
}
}
第一次导航后出现错误
ERROR 错误:未捕获(承诺中):已插入视图
销毁
ERROR Error: Uncaught (in promise): removeView was not found
【问题讨论】:
标签:
angular
mobile
ionic3
【解决方案1】:
问题是 this.loading.dismiss() 加载器实例没有被正确关闭,所以在启动新加载器之前你必须做的是:
this.loading.dismissAll();
this.loading = null;
所以我像这样改变了我的服务(这可能会更好,但你会明白的)。
export class LoaderService{
loading: Loading;
constructor(public loadingCtrl: LoadingController ){
}
startLoader(){
this.loader();
return this.loading.present();
}
stopLoader(){
this.loading.dismissAll();
this.loading = null;
}
private loader(){
if(this.loading && this.loading.instance){
this.stopLoader();
}
this.loading = this.loadingCtrl.create({
spinner: 'crescent',
dismissOnPageChange: true,
})
}
}