web-dev-qa-db-ja.com

Ionic Uncaught(promise):無効なリンク

ionicのthis.nav.Pushに問題があると思われます。ログイン/登録ページを実行しましたが、ログインするとこのエラーメッセージが表示されます。 login.tsとhome.ts(メインページ)からコードを追加する必要がありますか?

ランタイムエラー
アンキャッチ(約束):無効なリンク:HomePage


エラー:キャッチされません(約束):無効なリンク:dのHomePage( http:// localhost:8100/build/polyfills.js:3:3991 )at l( http:/ /localhost:8100/build/polyfills.js:3:3244 )Object.rejectで( http:// localhost:8100/build/polyfills.js:3:26 )NavControllerBaseで._fireError( http:// localhost:8100/build/main.js:45465:16 )at NavControllerBase._failed( http:// localhost:8100/build/main.js :45453:14 )at http:// localhost:8100/build/main.js:45508:59 at t.invoke( http:// localhost:8100/build.polyfills.js:3:11562 )Object.onInvokeで( http:// localhost:8100/build/main.js:4622:37 )t.invokeで(- http:// localhost:8100/build/polyfills.js:3:11502 )n.run( http:// localhost:8100/build/polyfills.js:3:6468 )at http:// localhost:8100/build/polyfills.js:3:3767 at t.invokeTask(- http:// localhost:8100/build/polyfills.js :3:12256 )Object.onInvokeTaskで( http:// localhost:8100/build/main.js:4613:37 )t.invokeTaskで( http://localhost:8 100/build/polyfills.js:3:12177 )n.runTask( http:// localhost:8100/build/polyfills.js:3:715

@edit:アプリにログインするときに問題が発生します。ログインに対するコードの回答者です。

login.ts

public login() {
    this.showLoading()
    this.auth.login(this.registerCredentials).subscribe(allowed => {
      if (allowed) {        
       this.nav.Push('HomePage');
      } else {
        this.showError("Access Denied");
      }
    },
      error => {
        this.showError(error);
      });
    }

auth-service.ts(ここに私のロインを実行するパブリック関数と、ログインで入力する必要があるパスと電子メールがある場所)

  public login(credentials) {
    if (credentials.email === null || credentials.password === null) {
      return Observable.throw("Please insert credentials");
    } else {
      return Observable.create(observer => {
        // At this point make a request to your backend to make a real check!
        let access = (credentials.password === "pass" && credentials.email === "email");
        this.currentUser = new User('Simon', '[email protected]');
        observer.next(access);
        observer.complete();
      });
    }
  }

このコードが間違っている理由はわかりません。私のアプリはhome.tsで、クラスはHomePageです。

7
Mrfet

「@Component」の前に@IonicPage()を追加し、次のように「IonicPage」をインポートする必要があります。import {NavController, IonicPage} from 'ionic-angular';

次に、ホームページのモジュールを作成する必要があります。つまり、ホームディレクトリに、次の内容のhome.module.tsを作成します。

import { NgModule } from '@angular/core';
import { IonicPageModule } from 'ionic-angular';
import { HomePage } from './home';

@NgModule({
  declarations: [
    HomePage
  ],
  imports: [
    IonicPageModule.forChild(HomePage),
  ],
  exports: [
    HomePage
  ]
})
export class HomePageModule {}

プロジェクトをリロードします

19
rylxes

コードの唯一の問題は、this.nav.Push('HomePage');を書くとき、ページを呼び出すときに''引用符を削除して、このように書くことです。

this.nav.Push(HomePage);引用符なし。

上の答えはionic2に対するものであり、ionic3には、次のように呼び出す遅延読み込みがありますthis.nav.Push('HomePage');

8
amyogiji

ログイン例をコピーしました。エラーも同様です。

HomePageのチェックポイント:(1)home.module.tsが(2)home.tsの '@Component'の前に@IonicPage()をチェックする(2)app.module.tsの宣言/エントリコンポーネントからHomePageを削除するオープンエラー

0
Marcus

サーバーを再起動すると、チャームのように動作します。修正に数時間かかりました。@IonicPage()で問題が解決しない場合は、サーバーを再起動してください。すなわちionic serve。ハッピーコーディング!!!

0
kontashi35

たとえば、tsファイルの@componentの前に@IonicPage()を追加します。

@ IonicPage() @Component({selector: 'page-wall'、templateUrl: 'wall.html'、})

0
Omkar Joshi