Ionic-framework: Runtime Error Uncaught (dalam janji): false pada Ionic 2.0.0-rc.5

Dibuat pada 16 Jan 2017  ·  66Komentar  ·  Sumber: ionic-team/ionic-framework

Menjalankan aplikasi ionic 2 di lingkungan dev mogok karena kesalahan:

Kesalahan Waktu Proses
Tidak tertangkap (berjanji): salah
Tumpukan
Kesalahan: Tidak tertangkap (berjanji): salah
di s (http://localhost:8100/build/polyfills.js:3:4211)
di s (http://localhost:8100/build/polyfills.js:3:4034)
di http://localhost :8100/build/polyfills.js:3:4574
di t.invokeTask (http://localhost:8100/build/polyfills.js:3:9723)
di Object.onInvokeTask (http://localhost:8100/build/main.js:38187:37)
di t.invokeTask (http://localhost:8100/build/polyfills.js:3:9659)
di e.runTask (http://localhost:8100/build/polyfills.js:3:7083)
di saya (http://localhost:8100/build/polyfills.js:3:3671)
Kerangka Ionik: 2.0.0-rc.5
Asli ionik: 2.2.11
Skrip Aplikasi Ionic: 1.0.0
Inti Sudut: 2.2.1
CLI Kompilator Sudut: 2.2.1
Node: 6.9.4
Platform OS: Windows 10
Platform Navigator: Win32
Agen Pengguna: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, seperti Gecko) Chrome/55.0.2883.87 Safari/537.36

Instal ulang baru -g ionic, instal node_modules baru.

Informasi sistem Anda:
ordova CLI: 6.4.0
Versi Kerangka Ionik: 2.0.0-rc.5
Versi CLI Ionik: 2.2.1
Versi Lib Aplikasi Ionic: 2.2.0
Versi Skrip Aplikasi Ionic: 1.0.0
versi ios-deploy: Tidak diinstal
versi ios-sim: Tidak diinstal
OS: Windows 10
Versi Node: v6.9.4
Versi Xcode: Tidak diinstal

Saya memiliki kesalahan yang sama dengan rc4 dan build malam tidak membantu.
Ini berfungsi tanpa kesalahan pada rc3 dan sebelumnya

Komentar yang paling membantu

Inilah masalahnya:
nav.push(), .pop(), viewcontroller.dismiss() dan family mengembalikan janji karena transisi sebenarnya dapat ditolak, misalnya dengan mengembalikan false di ionViewCanLeave/CanEnter.

Pastikan Anda "menangkap" janji dengan melakukan:

this.view.dismiss().catch(() => console.log('view was not dismissed'));

Semua 66 komentar

Kami tidak bisa mendapatkan apa-apa hanya dari ini, Anda harus mengikuti template masalah. Saya akan merekomendasikan ionic serve untuk melihat kesalahan apa yang Anda dapatkan di browser. Tapi ya tolong bagikan kode dan informasi lainnya.

Saya mendapatkan kesalahan ini setelah menutup modal

Lihatlah kode modal Anda dan pastikan tidak ada hal aneh yang terjadi pada acara penutupan.

   dismiss() {
        this.viewCtrl.dismiss();
    }

Apakah semua yang saya lakukan?

+1
masalah yang sama saat menggunakan LoadingController atau ActionSheetController

image

Lihat metode penolakan Anda di halaman utama Anda. Biasanya hal semacam ini adalah masalah pengembang. Jika ada, lihat tumpukan panggilan di konsol.

Pada 16 Januari 2017, 8:00 AM -5000, Beylkhanov Damir [email protected] , menulis:
>

+1
masalah yang sama


Anda menerima ini karena Anda berkomentar.
Balas email ini secara langsung, lihat di GitHub (https://github.com/driftyco/ionic/issues/10046#issuecomment-272856264), atau nonaktifkan utasnya (https://github.com/notifications/unsubscribe-auth /AEPIElAzcg8Rsqpf1HzX2q1EgPhFg-6cks5rS2nngaJpZM4LkFyw).

@wbhob Saya baru saja memutar kembali ke RC4 dan masalahnya hilang. Saya memiliki repo di GitHub jika Anda ingin menggunakannya untuk tujuan pemecahan masalah. Biarkan aku tahu

apakah Anda menggunakan ionViewCanLeave?

@manucorporat Tidak yakin untuk siapa pertanyaan Anda, tapi saya tidak menggunakan ionViewCanLeave. Saya menggunakan ionViewDidLoad() jika itu membantu

Saya menggunakan ionViewCanLeave dan saya juga mendapatkan kesalahan ini. +1

Saya menghadapi kesalahan ini juga. +1

Inilah masalahnya:
nav.push(), .pop(), viewcontroller.dismiss() dan family mengembalikan janji karena transisi sebenarnya dapat ditolak, misalnya dengan mengembalikan false di ionViewCanLeave/CanEnter.

Pastikan Anda "menangkap" janji dengan melakukan:

this.view.dismiss().catch(() => console.log('view was not dismissed'));

Ketika saya "menangkap" .dismiss() di LoadingController saya, masalahnya hilang. Jadi intinya, sepertinya kita SELALU harus "menangkap" setiap pemberhentian () dalam kode kita hanya untuk aman. Benar?

Apakah ada di antara Anda yang menggunakan Firebase di aplikasi Anda? Mungkin terkait dengan ini: https://github.com/driftyco/ionic/issues/9589

Memiliki masalah yang sama, menambahkan .catch() akan menghentikan kemunculan kesalahan.
Namun, saya juga mengirimkan data dalam panggilan dismiss() . Ketika fungsi OnDidDismiss kemudian dieksekusi, data yang diterimanya selalu undefined .

@brandyscarney Ya, saya menggunakan Firebase

Dalam kasus saya, pemberhentian () dari LoadingController yang menyebabkan crash.
Saya telah mengubahnya dari
this.loading.dismiss();
ke
this.loading.dismiss().catch(() => console.log('ERROR CATCH: LoadingController dismiss'));

Ini berfungsi di rc3 dan sebelumnya tetapi mogok di rc4 dan rc5

9659 #9589

+1

Halo semuanya! Jadi hanya untuk membersihkan semuanya di sini, kalian hanya mendapatkan masalah ini saat menggunakan firebase benar? Apakah kalian juga menggunakan firebase js sdk atau AngularFire2 ?

Juga, jika Anda menggunakan firebase, bisakah Anda memberi tahu saya metode firebase mana yang Anda gunakan ketika Anda mendapatkan kesalahan ini?

Hai teman-teman, saya baru saja menulis sesuatu tentang itu di masalah lain, lihat dan beri tahu saya jika itu memperbaikinya untuk Anda: https://github.com/driftyco/ionic/issues/9589#issuecomment -274121299

Saya mendapatkan beberapa masalah aneh yang tampaknya terkait dengan pengontrol peringatan. Kedua cuplikan di bawah ini menghasilkan kesalahan Uncaught in Promise yang sama, dan ini ada hubungannya dengan membuat pemuatan setelah mengabaikan konfirmasi.

Saya mencoba berbagai cara dalam melakukan sesuatu dan mendapatkan hasil yang sama, meskipun saya memiliki masalah aneh lainnya.

  1. doDelete tidak pernah mendapatkan properti delete .. meskipun seharusnya.
// Show the confirmation
let confirm = this.alertCtrl.create({
      title: 'Delete category?',
      message: 'Are you sure you wish to delete this category?',
      buttons: [
        { text: 'No' },
        {
          text: 'Yes',
          handler: () => {
            confirm.dismiss({ delete: true });
          }
        }
      ]
});

// Bug in RC5?
confirm.present();
confirm.onDidDismiss((doDelete: any) => {
    if (doDelete.delete) {
        this.doDelete(category);
    }
});
  1. Saya awalnya memiliki bagian fungsi doDelete dari penangan konfirmasi ya, dan itu juga memberikan kesalahan yang tidak tertangkap, saya memindahkannya karena saya pikir itulah penyebabnya.
handler: () => {
    confirm.dismiss().then(() => {
          let loading = this.loadingCtrl.create({
               content: 'Deleting category...'
         });
         loading.present().then(() => {

Dalam kedua kasus, error setelah loading.present() dipanggil. Saya menjalankan proyek cordova, ionic, dan RC5 terbaru (bersih).

Terima kasih untuk contoh kode @davec21 ! Saya sekarang dapat mereproduksi masalah ini dan sedang mencari perbaikan untuk itu.

@jgw96 Luar biasa! Senang Anda dapat mereproduksinya, saya membenturkan kepala saya ke meja mencoba mencari tahu.

haha Saya telah menghabiskan banyak waktu membenturkan kepala saya ke meja (:

Tampaknya terkait dengan pemberhentian () dari kotak konfirmasi (AlertController). Berdasarkan sedikit pengujian, sepertinya segera setelah Anda berlangganan yang dapat diamati (setelah pemberhentian dipanggil) itu melempar kesalahan.

Jika saya tidak memanggil pemberhentian () secara manual dan membiarkannya menutup maka semuanya tampak baik-baik saja.

@davec21

Jika saya tidak memanggil pemberhentian () secara manual dan membiarkannya menutup maka semuanya tampak baik-baik saja.

hmmm, dalam kasus Anda, Anda harus mengaktifkan pengaturan pemberhentianOnPageChange (misalnya untuk AlertController), jika tidak, itu tidak akan berfungsi juga

Kesalahan yang sama di sini, tetapi mendapatkannya dengan ToastController .
Terjadi ketika saya memiliki roti panggang yang aktif dan mengubah rute.
Saya memiliki dismissOnPageChange: true namun.

Rute navigasi saya untuk mengaktifkan 'sesuatu' yang memuat melalui LoadingController di kait ionViewDidLoad .

@niklas-dahl

anda dapat mencoba pendekatan ini yang juga berhasil untuk saya

loading.dismiss().then(() => { //navigation or other staff });

PS setel pemberhentianOnPageChange ke false

@beylkhanovdamir

hmmm, dalam kasus Anda, Anda harus mengaktifkan pengaturan pemberhentianOnPageChange (misalnya untuk AlertController), jika tidak, itu tidak akan berfungsi juga

Saya tidak mengubah halaman sekalipun. Saya hanya memanggil pemberhentian pada dialog di handler untuk tombol. Jika masalahnya tidak menggunakan itu, maka itu mungkin harus dinamai sesuatu yang lain. Kode Anda secara efektif adalah apa yang saya lakukan (jika Anda membaca cuplikan saya).

Fungsi "handler" HARUS memiliki "return false".

Penting untuk dicatat bahwa handler mengembalikan false. Fitur penangan tombol adalah mereka secara otomatis mengabaikan peringatan ketika tombol mereka diklik, namun, kami akan membutuhkan lebih banyak kontrol terkait transisi. Karena handler mengembalikan false, maka lansiran tidak secara otomatis mengabaikan dirinya sendiri. Alih-alih, Anda sekarang memiliki kendali penuh saat lansiran selesai bertransisi, dan kemampuan untuk menunggu lansiran selesai bertransisi sebelum memulai transisi baru.

Dari: https://ionicframework.com/docs/v2/api/components/alert/AlertController/

Ini memecahkan masalah bagi saya. XD

Hai,

Saya menghadapi masalah yang sama dengan LoadingController dengan pemecatanOnP ageChange:true dan RC6

image

Jika saya menggunakan metode pemecatan() itu masih gagal jika saya tidak menangkap() kesalahannya, tetapi tidak ada cara untuk membuatnya bekerja dengan pemecatanOnP ageChange:true yang sebenarnya saya inginkan, saya tidak ingin mengabaikan secara manual setiap Pengontrol Pemuatan.

Terima kasih dan salam.

Saya melihat ini juga dengan ModalController. Tidak menggunakan Firebase (rencana untuk).

let modal = this.modalCtrl.create(ModalSearchPage);
        modal.onDidDismiss(data => {
            console.log(data);
        });
        modal.present();

ModalSearchPage html

<form [formGroup]="todo" (ngSubmit)="handleOk($event)">
    <ion-item>
        <ion-label>Todo</ion-label>
        <ion-input type="text" formControlName="title"></ion-input>
    </ion-item>
    <ion-item>
        <ion-label>Description</ion-label>
        <ion-textarea formControlName="description"></ion-textarea>
    </ion-item>
    <button ion-button type="submit" [disabled]="!todo.valid">Ok</button>
    <button ion-button [disabled]="!todo.valid" (click)="handleCancel($event)">Cancel</button>
</form>

Typescript Halaman ModelSearch

todo = {};
    constructor(public viewCtrl: ViewController, private formBuilder: FormBuilder) {
        this.todo = this.formBuilder.group({
            title: ['', Validators.required],
            description: [''],
        });
    }

    handleOk() {
        let data = { 'foo': 'bar' };
        this.viewCtrl.dismiss(data);
    }

    handleCancel() {
        this.viewCtrl.dismiss();
    }

Jadi ini gagal tetapi hanya pada pembatalan. Mencoba semua opsi di atas dan terus gagal setiap kali pemecatan dipicu. OnDidDismiss menyala... tapi kemudian kita mendapatkan yang tidak tertangkap;

Namun, ketika saya menarik tombol batal dari formulir, maka saya tidak lagi mendapatkan kesalahan.

Hai semuanya,

Terima kasih untuk semua komentar! Kami tidak lagi dapat mereproduksi masalah ini menggunakan versi final 2.0.0 . Jika Anda tidak diperbarui ke versi final, silakan periksa changelog untuk langkah-langkah memperbarui antar versi: https://github.com/driftyco/ionic/blob/master/CHANGELOG.md

Jika Anda masih mengalami masalah ini, buat masalah baru. Pastikan untuk mengisi template masalah yang disediakan termasuk langkah-langkah untuk mereproduksi dengan repositori atau plunker yang dapat kita gunakan. Saya akan menutup masalah ini karena sulit bagi kita untuk membedakan antara siapa yang masih mengalami masalah dan siapa yang tidak. Terima kasih! :)

Masalah yang sama terjadi pada 2.0.0. Jika saya tidak menelepon this.loading.dismiss(); kesalahan hilang.
Dan saya tidak menggunakan Firebase.

ngOnInit() {
    this.bulletins = this.bulletinService.bulletins$.do(
      collection => { this.hideSpinner() },
      error => {
        this.hideSpinner()
        this._events.publish('notice', { alertCtrl: this.alertCtrl, message: "There seems to be a problem loading bulletins. Please try again later.", title: 'Error' })
      }
    )
    this.showSpinner()
  }

private showSpinner() {
    this.loading = this.loadingCtrl.create({
      spinner: 'dots',
      content: 'Loading...'
    });
    this.loading.present();
  }

  private hideSpinner() {
    if (this.loading !== undefined) {
      this.loading.dismiss();
    }
  }

Cordova CLI: 6.3.1
Versi Kerangka Ionik: 2.0.0
Versi CLI Ionik: 2.2.1
Versi Lib Aplikasi Ionic: 2.2.0
Versi Skrip Aplikasi Ionic: 1.0.0
versi penyebaran ios: 1.8.5
versi ios-sim: 5.0.6
OS: macOS Sierra
Versi Node: v6.7.0
Versi Xcode: Xcode 8.2.1 Versi build 8C1002

Hai @AdrianTeh , maukah Anda membuka edisi baru?

Apakah ada masalah baru yang dibuka untuk ini? Saya masih mengalami masalah saat menggunakan pemberhentianOnPageChange: true di lonic 2.0.1

Saya masih memiliki masalah ini juga di Modalcontroller.
Saya baru saja membuat aplikasi kosong baru, dan mencoba meneruskan data dari modal saya kembali ke tampilan utama.
Saya tidak perlu menambahkan blok tangkap setelah blok pemberhentian().

this.viewCtrl.dismiss(this.notiz).catch(() => {});;

@blakezeisler 2.0.1?

Ya!

cordova CLI: 6.5.0
Versi CLI Ionik: 2.2.1
Versi Lib Aplikasi Ionic: 2.2.0
versi ios-deploy: Tidak diinstal
versi ios-sim: Tidak diinstal
OS: Windows 10
Versi Node: v6.9.5
Versi Xcode: Tidak diinstal

"ionic-angular": "2.0.1"

ya, maksud saya 2.0.1

Saya mendapatkan masalah ini di ionic 2.0.1

Saya mendapatkan masalah ini juga dengan ionic 2.1.0.
Itu hanya terjadi dengan perangkat (jadi ketika plugin berfungsi).
Itu hanya terjadi dengan push atau pop dari NavCtrl; itu tidak akan pernah terjadi dengan Loading atau Alert karena saya telah menambahkan .catch() ke semuanya.
Dari stacktrack asli tampaknya terjadi di dalam kode transisi.

Cordova CLI: 6.5.0 
Ionic CLI Version: 2.2.1
Ionic App Lib Version: 2.2.0
ios-deploy version: Not installed
ios-sim version: Not installed
OS: Linux 4.8
Node Version: v6.10.0
Xcode version: Not installed

paket.json:

"dependencies": {
    "@angular/common": "2.2.1",
    "@angular/compiler": "2.2.1",
    "@angular/compiler-cli": "2.2.1",
    "@angular/core": "2.2.1",
    "@angular/forms": "2.2.1",
    "@angular/http": "2.2.1",
    "@angular/platform-browser": "2.2.1",
    "@angular/platform-browser-dynamic": "2.2.1",
    "@angular/platform-server": "2.2.1",
    "@ionic/storage": "1.1.7",
    "ionic-angular": "2.1.0",
    "ionic-native": "2.5.1",
    "ionicons": "3.0.0",
    "rxjs": "5.0.0-beta.12",
    "sw-toolbox": "3.4.0",
    "zone.js": "0.6.26"
  },
  "devDependencies": {
    "@ionic/app-scripts": "1.1.4",
    "typescript": "2.0.9"
  }

Di sini, di proyek saya, saya menggunakan ionViewCanEnter() untuk memeriksa apakah perangkat terhubung ke internet.
Tentu saja, karena status koneksi tidak dikembalikan secara instan, kueri harus dilakukan secara tidak sinkron, itu sebabnya saya menggunakan Promises di sana.
Jika tidak terhubung, janji akan menyelesaikan mengembalikan nilai palsu kembali ke ionViewCanEnter() .

misalnya

ionViewCanEnter() {
    return whenConnected(this.networkService, this.appMessages, this.navCtrl);
}

Kode di atas memanggil fungsi whenConnected yang mengembalikan Janji. Dokumentasi API menerima boolean dan Janjisebagai nilai pengembalian pada ionViewCanEnter.

Fungsi itu memiliki kode yang mirip dengan ini:

whenConnected() : Promise<boolean> {
    return this.deviceService.ready.then(() => {
        if(this.deviceService.connected){
            return true;
        }else{
            return false;
        }
    });
}

PERHATIAN : Kode di atas tidak mewakili kode sebenarnya untuk mendapatkan status koneksi perangkat. Yang asli sedikit lebih rumit dan tidak berguna untuk contoh ini. Saya baru saja menyederhanakannya untuk menunjukkan bagaimana saya menggunakan Janji untuk mencapai masalah pada proyek saya.

Kesimpulan
Dengan kode ini saya mendapatkan kesalahan ketika janji diselesaikan dengan nilai salah yang harus digunakan untuk memberi tahu pengontrol navigasi bahwa tampilan TIDAK BISA masuk.

PEMBARUAN 1: Ini Ionic2 versi 2.1.0.

Jejak tumpukan:

Error: Uncaught (in promise): false
    at s (polyfills.js:3)
    at polyfills.js:3
    at Object.ti.reject (nav-controller-base.js:187)
    at nav-controller-base.js:462
    at t.invoke (polyfills.js:3)
    at Object.onInvoke (ng_zone.js:236)
    at t.invoke (polyfills.js:3)
    at e.run (polyfills.js:3)
    at polyfills.js:3
    at t.invokeTask (polyfills.js:3)

Semoga membantu memecahkan masalah ini.
Terima kasih banyak !

ss

saya mendapatkan kesalahan ini (gambar terlampir) ketika saya menjalankan kode ini di bawah saya menggunakan plugin ionic 2 dan google maps
impor { Komponen } dari '@angular/core';

impor { NavController } dari 'ionic-angular';

impor {
Peta Google,
Acara GoogleMaps,
GoogleMapsLatLng,
KameraPosisi,
Opsi GoogleMapsMarker,
GoogleMapsMarker
} dari 'ionik-asli';

@Komponen({
pemilih: 'halaman-kontak',
templateUrl: 'kontak.html'
})

kelas ekspor Halaman Kontak {

konstruktor (navCtrl publik: NavController) {
}

ngAfterViewInit() {
this.loadMap();
}

bebanPeta(){
// buat peta baru dengan melewatkan HTMLElement
biarkan elemen: HTMLElement = document.getElementById('map');
biarkan peta = new GoogleMap(elemen);
// buat objek LatLng
let ionic: GoogleMapsLatLng = new GoogleMapsLatLng(43.0741904,-89.3809802);

// buat Posisi Kamera
biarkan posisi: CameraPosition = {
sasaran: ionik,
perbesar: 18,
kemiringan: 30
};

// dengarkan acara MAP_READY
map.one(GoogleMapsEvent.MAP_READY).lalu(() => {
// pindahkan kamera peta ke posisi
peta.moveCamera(posisi); // berfungsi di iOS dan Android
});

// buat penanda baru
biarkan markerOptions: GoogleMapsMarkerOptions = {
posisi: ionik,
judul: 'ionik'
};

map.addMarker(markerOptions)
.then((penanda: GoogleMapsMarker) => {
marker.showInfoWindow();
});

}

}

Saya percaya kesalahan ini terjadi setiap kali modal diakses/dibuka dengan mendorongnya ke dalam array NavController alih-alih menggunakan fungsi .present() aslinya.

Mencoba .dismiss() itu akan gagal karena modalnya tidak pernah "_presented_"...

(Pendapat baru saya, tho'... Sangat baru untuk Ionic 2 dan Angular/TS.)

Saya menghadapi masalah yang sama juga di 3.0.1 :

let loading = loadingController.create({
  spinner : 'hide',
  content : `Loading...`
});
loading.present().then(() => {
  //do some work
});
//Do some more work
loading.dismiss();

Informasi ionik:

Cordova CLI: 6.5.0
Versi Kerangka Ionik: 3.0.1
Versi CLI Ionik: 2.2.2
Versi Lib Aplikasi Ionic: 2.2.1
Versi Skrip Aplikasi Ionic: 1.3.0
versi ios-deploy: Tidak diinstal
versi ios-sim: 5.0.8
OS: macOS Sierra
Versi Node: v6.10.1
Versi Xcode: Xcode 8.2.1 Versi build 8C1002

Pesan eror:

Uncaught (in promise): false
    at g (polyfills.js:3)
    at l (polyfills.js:3)
    at l (polyfills.js:3)
    at polyfills.js:3
    at t.invokeTask (polyfills.js:3)
    at Object.onInvokeTask (core.es5.js:4136)
    at t.invokeTask (polyfills.js:3)
    at n.runTask (polyfills.js:3)
    at a (polyfills.js:3)

Masalah ini harus dibuka kembali.

Ya @chandanch @jgw96 Masalah ini terjadi setelah saya memutakhirkan ke ionic 3...

sepertinya masalah LoadController ...

Saya melakukan debugging menyeluruh dari kode saya dan saya menemukan bahwa Dalam satu contoh saya memanggil dismiss() dua kali. Jika Anda memanggil dismiss() lagi untuk LoadingController yang sudah ditutup, Anda akan mendapatkan kesalahan ini.
Dalam contoh lain jika jika pemuatan diberhentikan bahkan sebelum itu dibuat.

@chandanch @jgw96

ini kode saya

**ionViewDidLoad() {

this.platform.ready()
  .then(() =>
  {
     this.books = this.angFire.database.list('/books');
     loading.dismiss();
  });
   let loading = this.loadingCtrl.create({content:'My message'});
  loading.present();
  console.log(this.angFire.database.list('/books'));

}**

saya menemukan kesalahan Uncaught (dalam janji): false setelah memutakhirkan ke ionic 3.0.0

setelah menghapus loadingcontroller, kesalahan hilang

Sepertinya ada yang salah dengan controller setelah upgrade.

Mohon bimbingannya untuk mengatasi masalah ini. Saya ingin menambahkan pemuatan sebelum platform siap...

@chenlitchian sepertinya Anda mengabaikan pemuatan yang tidak dibuat. Atau kode tersebut sebagian dibagikan di sini Oleh karena itu mengembalikan Anda pengecualian janji yang tidak tertangkap.

this.platform.ready().then(() => {
    this.books = this.angFire.database.list('/books');
    // Here you are dismissing loading which is not created
    loading.dismiss();
});

Coba lakukan dengan cara ini menggunakan ionViewDidLoad .

ionViewDidLoad() {
    let loader = this.loadingController.create({
      spinner : 'hide',
      content : `Loading...`
    });
    loader.present.then(() => {
      this.books = this.angFire.database.list('/books');
      loader.dismiss().then(() => {
        console.log("Loading dismissed");
      });
    })
  }

@chandanch Ya, terima kasih. Itu berhasil...

Saya mendapatkan kesalahan ini ketika saya menggunakan lembar tindakan dan mengabaikannya dengan mengetuk latar belakang (menggunakan versi 2.0.0, tetapi sepertinya kesalahan yang sama ini terjadi untuk berbagai versi klien rilis dan lebih tinggi). Saya tidak melihat cara menambahkan penanganan kesalahan ke pemberhentian yang dipanggil dengan mengetuk latar belakang. Bantuan apa pun akan dihargai di sini.

@GerryFudd Bisakah Anda membagikan kode atau plunkernya? Kita bisa mendapatkan gambaran yang lebih baik.

Saya mendapatkan kesalahan, saya tidak pernah menggunakan firebase :)
Saya mendorong halaman dari menu seperti halaman dengan yang berikut:

this.NavController.push(page.component);

Halaman yang didorong memiliki

// 20170518
    ionViewWillLeave() {
        //
        // http://stackoverflow.com/questions/43175186/ionic-2-tabs-reset-view-when-clicking-another-tab
        // enable if we want to pop/reset to upon user switching view eg.tabs
        this.NavController.pop();
    }

lalu saya beralih tab, tanpa mundur dan saya mendapatkan kesalahan

core.es5.js:1084 ERROR Error: Uncaught (in promise): navigation stack needs at least one root page
    at c (polyfills.js:3)
    at Object.reject (polyfills.js:3)
    at Tab.NavControllerBase._fireError (nav-controller-base.js:322)
    at Tab.NavControllerBase._failed (nav-controller-base.js:310)
    at nav-controller-base.js:365
    at t.invoke (polyfills.js:3)
    at Object.onInvoke (core.es5.js:4125)
    at t.invoke (polyfills.js:3)
    at r.run (polyfills.js:3)
    at polyfills.js:3

informasi ionik

global packages:

    @ionic/cli-utils : 1.0.0
    Cordova CLI      : 7.0.0
    Ionic CLI        : 3.0.0

local packages:

    @ionic/app-scripts              : 1.3.7
    @ionic/cli-plugin-cordova       : 1.0.0
    @ionic/cli-plugin-ionic-angular : 1.0.0
    Ionic Framework                 : ionic-angular 3.2.0

System:

    Node       : v7.2.0
    OS         : Windows 7
    Xcode      : not installed
    ios-deploy : not installed
    ios-sim    : not installed

Terima kasih

Buka modal, lalu klik tombol kembali.

ERROR Error: Uncaught (in promise): invalid views to insert
    at c (polyfills.js:3)
    at Object.reject (polyfills.js:3)
    at NavControllerBase._fireError (nav-controller-base.js:322)
    at NavControllerBase._failed (nav-controller-base.js:310)
    at nav-controller-base.js:365
    at t.invoke (polyfills.js:3)
    at Object.onInvoke (core.es5.js:4128)
    at t.invoke (polyfills.js:3)
    at r.run (polyfills.js:3)
    at polyfills.js:3
defaultErrorLogger  @   core.es5.js:1084
ErrorHandler.handleError    @   core.es5.js:1144
IonicErrorHandler.handleError   @   ionic-error-handler.js:63
next    @   core.es5.js:4757
schedulerFn @   core.es5.js:3830
SafeSubscriber.__tryOrUnsub @   Subscriber.js:238
SafeSubscriber.next @   Subscriber.js:185
Subscriber._next    @   Subscriber.js:125
Subscriber.next @   Subscriber.js:89
Subject.next    @   Subject.js:55
EventEmitter.emit   @   core.es5.js:3816
NgZone.triggerError @   core.es5.js:4188
onHandleError   @   core.es5.js:4149
t.handleError   @   polyfills.js:3
r.runGuarded    @   polyfills.js:3
(anonymous) @   polyfills.js:3
e.microtaskDrainDone    @   polyfills.js:3
o   @   polyfills.js:3
invoke  @   polyfills.js:3

__INFO__

global packages:

    @ionic/cli-utils : 1.0.0
    Ionic CLI        : 3.0.0

local packages:

    @ionic/app-scripts              : 1.3.7
    @ionic/cli-plugin-ionic-angular : 1.1.2
    Ionic Framework                 : ionic-angular 3.2.1

System:

    Node       : v7.10.0
    OS         : macOS Sierra
    Xcode      : Xcode 8.3.2 Build version 8E2002 
    ios-deploy : 1.8.6 
    ios-sim    : 5.0.8 

Solusi sederhana mungkin menambahkan setTimeout(() => {lakukan tindakan di sini ...}, 500);
Tindakan dapat mengubah nav.setRoot(Nama Komponen) atau nav.push(Nama Komponen) .

Ini menghapus kesalahan untuk saya.

semua berfungsi dengan baik, tetapi sekarang saya tidak tahu apa yang saya ubah, saya mendapatkan kesalahan dengan:
`this.navCtrl.push(Halaman Utama);

Kesalahan: Tidak tertangkap (dalam janji): tampilan tidak valid untuk dimasukkan
di c (http://localhost:8100/build/polyfills.js:3:13190)
di Object.reject (http://localhost:8100/build/polyfills.js:3:12546)
di NavControllerBase._fireError (http://localhost:8100/build/main.js:48745:16)
di NavControllerBase._failed (http://localhost:8100/build/main.js:48733:14)
di http://localhost :8100/build/main.js:48788:59
di t.invoke (http://localhost:8100/build/polyfills.js:3:8971)
di Object.onInvoke (http://localhost:8100/build/main.js:4657:37)
di t.invoke (http://localhost:8100/build/polyfills.js:3:8911)
di r.run (http://localhost:8100/build/polyfills.js:3:4140)
di http://localhost :8100/build/polyfills.js:3:13731

Kerangka Ionik: 3.5.0
Skrip Aplikasi Ionik: 1.3.12
Inti Sudut: 4.1.3
CLI Kompilator Sudut: 4.1.3
Simpul: 8.1.0
Platform OS: Linux 4.8
Platform Navigator: Linux x86_64
Agen Pengguna: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, seperti Gecko) Chrome/59.0.3071.86 Safari/537.36
`

terima kasih jika ada yang punya ide

@webmobiles Harap hapus posting di atas dan buka sebagai yang baru dengan lebih detail. Anda menggunakan Ionic 3.5.0 .
Di sini: https://github.com/ionic-team/ionic/issues/new

Ini berhasil! Terima kasih

Hai,
Saya menghadapi kesalahan ini.
screen shot 2018-01-23 at 17 53 40

@TwalibuMsangi - apakah Anda mengimpor modul yang tepat? Tutorial TOH menjelaskan cara melakukannya di sini: https://angular.io/tutorial/toh-pt6. Mereka menggunakan HttpClient dan Anda tampaknya menggunakan modul Http , tetapi konsepnya pada dasarnya sama. Hanya detailnya yang berbeda (FWIW, saya sarankan menggunakan HttpClient jika Anda bisa (tidak yakin versi Angular yang Anda gunakan).

screenshot_2018-07-15 ionic app
hey guys um saya agak baru dalam hal ini saya bertanya-tanya apakah saya bisa mendapatkan bantuan .... Saya mengalami masalah dalam mengirimkan data antar halaman menggunakan ngOnInIt, navParams dan navController

hai, saya punya masalah karena saya ingin menggunakan plugin eksternal dan tidak berfungsi dan saya tidak tahu mengapa, namanya com.lampa.startapp dan ini adalah satu-satunya pemikiran yang saya butuhkan untuk menyelesaikan aplikasi saya. tolong jika seseorang dapat membantu saya melakukannya lebih cepat. di sini kesalahannya.
Error: Uncaught (en promesa): ReferenceError: startApp no ​​está definido ReferenceError: startApp no ​​está definido en http: // localhost: 8100 / build / main.js: 497: 27 en t.invoke (http: / / localhost: 8100 /build/polyfills.js:3:14976) en Object.onInvoke (http: // localhost: 8100 / build / vendor.js: 5134: 33) en t.invoke (http: // localhost: 8100 / build / polyfills .js: 3: 14916) en r.run (http: // localhost: 8100 / build / polyfills.js: 3: 10143) en http: // localhost: 8100 / build / polyfills.js: 3 : 20242 en t .invokeTask (http: // localhost: 8100 / build / polyfills.js: 3: 15660) en Object.onInvokeTask (http: // localhost: 8100 / build / vendor.js: 5125: 33) en t .invokeTask (http : // localhost: 8100 / build / polyfills.js: 3: 15581) en r.runTask (http: // localhost: 8100 / build / polyfills.js: 3: 10834) en c (http: / / localhost: 8100 /build/polyfills.js:3:19752) en http: // localhost:8100 / build / polyfills.js: 3: 20273 en t.invokeTask (http: // localhost: 8100 / build / po lyfills.js: 3: 15660) en Object.onInvokeTask (http: // localhost: 8100 / build / vendor .js: 5125: 33) en t.invokeTask (http: // localhost: 8100 / build / polyfills.js: 3: 15581) en r.runTask (http: // localhost: 8100 / build / polyfills.js: 3 : 10834) en o (http: // localhost: 8100 / build / polyfills.js: 3: 7894) en e .invokeTask [como invocación] (http: // localhost: 8100 / build / polyfills.js: 3: 16823 ) en p (http: // localhost: 8100 / build / polyfills.js: 2: 27648) en HTMLImageElement.v (http: // localhost: 8100 / build / polyfills.js: 2: 27893)runTask (http: // localhost: 8100 / build / polyfills.js: 3: 10834) en o (http: // localhost: 8100 / build / polyfills.js: 3: 7894) en e.invokeTask [como invocar] ( http: // localhost: 8100 / build / polyfills.js: 3: 16823) en p (http: // localhost: 8100 / build / polyfills.js: 2: 27648) en HTMLImageElement.v (http: // localhost: 8100 / build / polyfills.js: 2: 27893)runTask (http: // localhost: 8100 / build / polyfills.js: 3: 10834 ) (http: // localhost: 8100 / build / polyfills.js: 3: 7894) en e.invokeTask [como invocar] ( http: // localhost: 8100 / build / polyfills.js: 3: 16823) en p (http : // localhost: 8100 / build / polyfills.js: 2: 27648) en HTMLImageElement.v (http: // localhost: 8100 / build / polyfills.js: 2: 27893)

=> ini kodenya

impor { Komponen } dari '@angular/core';
import { IonicPage, NavController, NavParams, Platform } dari 'ionic-angular';
impor {CrearPage} dari '../crear/crear';
impor { InAppBrowser } dari '@ionic-native/in-app-browser';

mendeklarasikan var startApp: any;

@IonicPage()
@Komponen({
pemilih: 'halaman-utilidades',
templateUrl: 'utilidades.html',
})
kelas ekspor UtilidadesPage {
pengguna: string;

konstruktor (iap pribadi: InAppBrowser,
navCtrl publik: NavController,
navParams publik: NavParams,
platform publik: Platform) {
}

facebook(){
this.platform.ready().then(()=>{
var GoFaceb = startApp.set({
"tindakan": "ACTION_VIEW",
"uri": "fb://facewebmodal/f?href=https://www.facebook.com/"
}).Mulailah();
});
}
}

Terima kasih untuk masalah ini! Masalah ini sedang dikunci untuk mencegah komentar yang tidak relevan dengan masalah asli. Jika ini masih menjadi masalah dengan versi terbaru Ionic, harap buat masalah baru dan pastikan template terisi penuh.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat