Ionic 4 Загрузка контроллера продолжается после увольнения - PullRequest
0 голосов
/ 25 июня 2019

Я использую Ionic 4 и контроллер загрузки.

async presentLoading() {
    const loading = await this.loadingCtrl.create({
      message: 'wait. . .'
    });
    return await loading.present();
}

Прекрасно работает.Но теперь я хочу программно отменить загрузчик.

this.loadingCtrl.dismiss().then(a => console.log('dismissed'));

Несмотря на то, что на консоли я вижу «отклонено» (ведение журнала работает), загрузка наложения продолжается.Есть идеи, в чем может быть причина?

Ответы [ 2 ]

0 голосов
/ 26 июня 2019
 If you want to dismiss programmatically use this in your service. 



export class LoaderService {
 private isLoading = false;
 constructor(private loadingController: LoadingController) {
  }

  async presentLoading() {
    // issue generated! so we used Boolean value to set loader dismissed call 
         firstly so we used this logic
    this.isLoading = true;
    let loading = await this.loadingController.create({
    message: 'Please Wait',
    spinner: 'bubbles'
  }).then((res) => {
      res.present();
      if (!this.isLoading) {
        // res.dismiss().then(()=> console.log('abort presenting'));
        this.loadingController.dismiss().then(() => 
console.log('Dismissed'));
     }
    });
    return loading;
  }

async hideLoading () { this.isLoading = false; return await this.loadingController.dismiss (). then (() => console.log ('Dismissed')); } }

0 голосов
/ 26 июня 2019

Вы не отклоняете фактический загрузчик, который отображается.Вы должны отклонить его с помощью переменной loading, как показано ниже:

loading.dismiss().then(a => console.log('dismissed'));

Обратите внимание, что я использовал переменную loading, которую вы объявили для текущего загрузчика.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...