使用Ionic 3与EventEmitters进行组件通信失败

时间:2018-08-28 21:04:56

标签: angular typescript ionic-framework ionic3

我是Ionic的新手,所以基本上我正在关注一个教程。在本教程中,人员正在指定从EventEmitter<any>的{​​{1}}类型,如我的代码所示。我在 login-response.interface.ts 中创建了另一个名为<LoginStatus>的类。

因此,当我创建一个可选命名为LoginResponse的对象并传递键resultemail时,它们也是可选的;它给了我这个语法错误,表明类型uid与类型UserCredential没有共同点。

我的 login-form.component.ts 代码是:

LoginResponse

和我的 login-response.interface.ts 文件代码是:

import { Component, EventEmitter, Output } from '@angular/core';
import { NavController } from 'ionic-angular';
import { AngularFireAuth } from 'angularfire2/auth';

import { Account } from '../../model/account/account.interface';
import { LoginResponse } from '../../model/login/login.response.interface';

@Component({
  selector: 'app-login-form',
  templateUrl: 'login-form.components.html'
})
export class LoginFormComponent {
  @Output() loginStatus: EventEmitter < LoginResponse > ;
  account = {} as Account;

  constructor(private afAuth: AngularFireAuth, private navCtrl: NavController) {
    this.loginStatus = new EventEmitter < LoginResponse > ();
  }

  async login() {
    try {
      const result = await this.afAuth.auth.signInWithEmailAndPassword(this.account.email, this.account.password)
      //I am getting nothing in common userCredential Error on the 'result' word
      this.loginStatus.emit(result);
    } catch (error) {
      console.error(error);
      this.loginStatus.emit(error);
    }
  }

  navigateToPage(pageName: string) {
    pageName === 'TabsPage' ? this.navCtrl.setRoot(pageName) : this.navCtrl.push(pageName)
  }

}

我在Ionic 3中是一个全新的人,所以我不知道自己在哪里犯任何错误。任何帮助将不胜感激。

0 个答案:

没有答案