开发者问题收集

未捕获(承诺中):TypeError:无法访问离子段中的属性“值”

2021-04-10
235

我有一个 Ionic 段

<ion-segment scrollable mode="md" color="primary" (ionChange)="cambioCategoria( $event )">

    <ion-segment-button mode="md" *ngFor="let categoria of categorias" [value]="categoria">
        <ion-label text-capitalize>{{ categoria }}</ion-label>
    </ion-segment-button>


</ion-segment>
import { Component, ViewChild, OnInit } from '@angular/core';
import { IonSegment } from '@ionic/angular';
import { NoticiasService } from '../../services/noticias.service';
import {  Article } from '../../interfaces/interfaces';

@Component({
  selector: 'app-tab2',
  templateUrl: 'tab2.page.html',
  styleUrls: ['tab2.page.scss']
})
export class Tab2Page implements OnInit {

  @ViewChild(IonSegment) segment: IonSegment;

  categorias = ['business', 'entertainment', 'general', 'health', 'science', 'sports', 'technology', ];

  noticias: Article[] = [];            

  constructor(private NoticiasService: NoticiasService) {} 

  ngOnInit()
  {
    console.log(this.categorias[0]);
    this.segment.value = this.categorias[0];
  
  }     

并且我收到此错误:错误错误:未捕获(在承诺中):TypeError:无法访问属性“value”,this.segment 未定义

console.log 中的categorias[0] = business categorias[0] 是“business”,所以我不明白为什么会收到此错误。

错误在这里 = this.segment.value = this.categorias[0];

1个回答

任何 Ionic 组件都将在视图呈现后初始化。 ngOnInit 在视图初始化之前触发。

将您的代码放入

ionViewDidEnter() {
   console.log(this.categorias[0]);
   this.segment.value = this.categorias[0];
}
Patrick Ciseran
2021-04-11