Ionic 3 LoadingController removeView не был найден - PullRequest
0 голосов
/ 06 декабря 2018

Я создаю приложение ionic 3 и хотел добавить загрузочный счетчик для каждой навигации.Поэтому я создал загрузочный сервис и добавил его в мой навигационный сервис для автоматической обработки всех переходов.

Для запуска и остановки загрузчика я использовал:

export class LoaderService{
    loading: Loading;
    constructor(public loadingCtrl: LoadingController ){
        this.loading = this.loadingCtrl.create({
            spinner: 'crescent'
        })
    }

    startLoader(){
        this.loading.present();
    }

    stopLoader(){
        this.loading.dismiss();
    }
}

После первой навигации я получаюошибки

Ошибка ОШИБКИ: Uncaught (в обещании): вставленное представление уже уничтожено

Ошибка ОШИБКИ: Uncaught (в обещании): removeView не был найден

1 Ответ

0 голосов
/ 06 декабря 2018

Проблема заключалась в том, что с 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,
        })
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...