【问题标题】:Ionic pipe TypeError: Cannot read property 'toString' of undefined离子管道类型错误:无法读取未定义的属性“toString”
【发布时间】:2019-02-19 09:23:04
【问题描述】:

我有一个 Ionic 4 新闻阅读器应用程序。类UutinenPage 的属性pubDate 在uutinen.page.ts 中被异步分配一个值data.items[this.id].pubDate。该值应类似于2019-02-19 04:02:00。我需要用toLocaleDateString() 打印出这个字符串,这样结果就是19.2.2019。我收到以下错误:

TypeError: Cannot read property 'toString' of undefined
at JulkaisuaikaPipe.push../src/app/julkaisuaika.pipe.ts.JulkaisuaikaPipe.transform (julkaisuaika.pipe.ts:10)

uutinen.page.html:

<ion-header>
  <ion-toolbar>
    <ion-title>Yle Uutiset</ion-title>
    <ion-buttons slot="start">
      <ion-button (click)="meneTakaisin()">
        <ion-icon slot="start" name="arrow-back"></ion-icon>
      </ion-button>
    </ion-buttons>
  </ion-toolbar>
</ion-header>

<ion-content padding>
  <h1>{{ uutinen?.title }}</h1>
  <p>{{ uutinen?.description }}</p>
  <p><b>{{ uutinen?.categories[0] }}</b> {{ pubDate | julkaisuaika }}</p>
  <img [src]="uutinen?.thumbnail">
  <div [innerHTML]="uutinen?.content"></div>
</ion-content>

uutinen.page.ts:

import { Pipe, PipeTransform } from '@angular/core';
import { uutissyote } from './uutissyote.interface';

@Pipe({
  name: 'julkaisuaika'
})
export class JulkaisuaikaPipe implements PipeTransform {

  transform(pubDate?: uutissyote): any {
    let pvm = new Date(pubDate.toString());
    return pvm.toLocaleDateString();
  }

}

julkaisuaika.pipe.ts:

import { Pipe, PipeTransform } from '@angular/core';
import { uutissyote } from './uutissyote.interface';

@Pipe({
  name: 'julkaisuaika'
})
export class JulkaisuaikaPipe implements PipeTransform {

  transform(pubDate?: uutissyote): any {
    let pvm = new Date(pubDate.toString());
    return pvm.toLocaleDateString();
  }

}

【问题讨论】:

    标签: angular typescript ionic4


    【解决方案1】:

    如果 pubDate 为 null 可能会发生这种情况,您应该在将其转换为字符串之前添加一个 null 检查,

     if(pubDate){
       let pvm = new Date(pubDate.toString());
    

    【讨论】:

    • 请注意,此检查也会对空字符串返回 false。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-19
    • 2019-08-26
    • 1970-01-01
    • 2021-09-06
    • 2017-12-26
    • 2022-01-01
    相关资源
    最近更新 更多