У меня проблема, когда я хочу прочитать подробности списка новостей в Ionic 4 - PullRequest
0 голосов
/ 28 февраля 2019

я написал код, который отображал список новостей, который я сохранил в firestore, и все в порядке, но когда я нажимаю на кнопку сведений, чтобы показать подробности новостей, на консоли отображается ошибка, и она не отображаетсяподробно на странице сообщение об ошибке: DetailsPage_Host.ngfactory.js?[sm]: 1 ОШИБКА TypeError: Невозможно прочитать свойство 'doc' из неопределенного в DetailsPage.push ../ src / app / details / details.page.ts.DetailsPage.getEventDetail (details.page.ts: 57) в DetailsPage.push ../ src / app / details / details.page.ts.DetailsPage.ngOnInit (details.page.ts: 33)

мой код: news.page.html

<ion-content padding>
        <ion-item *ngFor=" let count of news | async">
          <h5>{{count?.title}}
            <button  routerLink="/details/{{count.id}} ">details</button>

            <img src="{{count?.image}}">
          </h5>

        </ion-item>
</ion-content>

news.page.ts

import { Component, OnInit } from '@angular/core';
import {AngularFirestore, AngularFirestoreDocument} from 'angularfire2/firestore';
import {Observable} from 'rxjs';
import { Router } from '@angular/router';
import 'rxjs/add/operator/map';
export class NewsPage implements OnInit {
  news: Observable<any[]>;
constructor(public db: AngularFirestore, private router: Router) { }

  ngOnInit() {
this.news = this.db.collection('123').snapshotChanges().map(actions => {
      return actions.map(a => {
        const data = a.payload.doc.data();
        const id = a.payload.doc.id;
        return { id, ...data };
      });
    });
}
}

details.page.html

<ion-content padding >
    ${{currentEvent?.content}}


</ion-content>

details.page.ts

import { Component, OnInit, ɵConsole } from '@angular/core';
import { ActivatedRoute } from '@angular/router';
import { AngularFirestore, AngularFirestoreDocument } from 'angularfire2/firestore';
import {Observable} from 'rxjs';

export class DetailsPage implements OnInit {
  public eventListRef: firebase.firestore.CollectionReference;
  public currentEvent: any = {};
constructor(private router: ActivatedRoute, private afs: AngularFirestore) {

   }

  ngOnInit() {
     const newsId: string = this.router.snapshot.paramMap.get('id');
     console.log(newsId);
     this.getEventDetail(newsId).get().then(eventSnapshot => { //the error message 33 is Here
      this.currentEvent = eventSnapshot.data();
      this.currentEvent.id = eventSnapshot.id;
      });
  }
getEventDetail(newsId: string): firebase.firestore.DocumentReference {
  return this.eventListRef.doc(newsId);**//the error message 57 is Here**
  }
}

Как я могу решить эту проблему ??

...