我的离子应用程序工作正常,我没有做任何事情,但突然我得到这个错误,我不知道为什么。离子 - 错误:未捕获(承诺):removeView未找到
"Error: Uncaught (in promise): removeView was not found
我的离子应用程序工作正常,我没有做任何事情,但突然我得到这个错误,我不知道为什么。离子 - 错误:未捕获(承诺):removeView未找到
"Error: Uncaught (in promise): removeView was not found
当您想手动关闭离子加载时,可能需要按照以下示例进行操作。哪些工作正常,我已经在离子实验室进行了测试。
Ionic 3+
注: 如果调用this.loading.dismiss()手动,我不建议使用dismissOnPageChange,你可能驳回相同负载的两倍。
为什么下面的解决方案有效?
我认为this.loading.present()
是一种异步方法,因此当this.loading.present()
仍在运行时,我们不能手动调用this.loading.dismiss()
。
因此,如果我们需要手动解锁,我们需要确保加载已提交并有解除它的视图,我们应在present().then
之后使用其他方法,如下面的代码。
但是我不确定为什么我们在旧的框架版本(2.0.3)中没有这个问题。
import { Loading, LoadingController } from 'ionic-angular';
export class ApnSearchPage {
loading: Loading;
constructor(private loadingCtrl: LoadingController) { }
ionViewDidLoad() {
this.createLoader();
}
createLoader(message: string = "Please wait...") { // Optional Parameter
this.loading = this.loadingCtrl.create({
content: message
});
}
public searchClick() {
this.createLoader();
this.loading.present().then(() => {
this.searchService.submitRequest(params, data)
.subscribe(response => {
this.loading.dismiss();
}, error => {
this.loading.dismiss();
this.errorMessage = <any>error
});
});
}
}
Reference Link,因此发布唯一有用的和工作技巧和代码。
我希望这有助于!
我设法通过从组件中删除加载控制器来解决它。
我删除了loading.dismiss函数并解决了它。
删除组件是而不是解决任何问题。
问题原因:有多个调用来解除加载组件的方法。
解决方案: 在创建装载机,检查装载情况是不已经存在,才创建另一个实例。
同样,在解散加载程序时,检查加载程序实例是否存在,然后才解雇它。
代码:
constructor(private _loadingCtrl: LoadingController){}
loading;
showLoading() {
if(!this.loading){
this.loading = this._loadingCtrl.create({
content: 'Please Wait...'
});
this.loading.present();
}
}
dismissLoading(){
if(this.loading){
this.loading.dismiss();
this.loading = null;
}
}
大..其工作 –
这应该是正确的解决方案! – Vasyl
它说,你叫loading.dismiss()load.presenet()之前结束。 你应该尝试
let a = this.loadingCtrl.create({content : 'hello world'})
await a.present();
..
.. // your code goes here..
...
a.dismiss()
这里是一个用于alertController但工程非常相似。
logout() {
let prompt = this.alertCtrl.create({
title: 'Logout',
subTitle: 'Are You Sure You Want To Logout?',
buttons: [
{
text: 'No',
handler: data => {
let navTransition = prompt.dismiss();
navTransition.then(() => {
this.navCtrl.pop();
});
return false;
}
},
{
text: 'Yes',
handler: data => {
this.lgout();
}
}
]
});
prompt.present();
}
这是我对这个问题最简单的解决办法:不要施工内初始化加载器(它的工作原理:
实施LoadingController
注意,当我有这个问题只有第一次,从第二次你会卡住删除查看未发现问题)
loading:any;
this.loading=this.loadingCtrl.create({
spinner:'bubbles',
content:`Please wait..`
});
我当时显示装载机,同时从服务器 下面获取数据是代码时,我卡住了去掉观点没有被发现
gosignup(number:string){
this.loading.present();//showing the loader
//calling webservice
this.Authprovider.smsverify(number).subscribe(
data=>{
this.loading.dismiss();//this created the problem
if(data.json().msg=="success"){
this.navCtrl.push(SignupPage,{
user:this.Usersignup
})
}
if(data.json().msg=="error"){
this.showToastWithCloseButton("Invalid otp");
}
},
err=>{
this.loading.dismiss();
this.showToast("Please try again later");
},
()=>{
}
);
}
要修复这个问题,需要关闭该完成内部装载机方法即
()={
this.loading.dismiss();//this saved my life
}
希望它会解决你的问题了。
你是怎么删除它的? –
这不是一个答案。正确的答案在上面。 –