Ошибка типа: неопределенный не является объектом (вычисляется ‘ctx.item.Улица’) (NativeScript)

#javascript #html #json #reactjs #nativescript

#javascript #HTML #json #reactjs #nativescript

Вопрос:

Я подключил базу данных, которая передает данные в формате JSON NativeScript .

Я продвинулся довольно далеко с точки зрения возможности извлекать данные из MongoDB , маршрутизировать данные в array s, а затем отображать данные в каждом HTML представлении приложения.

Проблема:
Item элемент еще рассматривается undefined , но когда я console.log() Item после выполнения функции извлечения и назначения получаю точный элемент JSON

 {
  "_id": "5f3c82f37cdb5d6766c73217",
  "Street": "134 Marin Drive",
  "City": "ABSECON",
  "Zip": "08201"
}
  

JS

 export class ItemDetailComponent implements OnInit {
    item: Item;
    
    constructor(
        private itemService: ItemService,
        private route: ActivatedRoute,
    ) {}

    ngOnInit(): void {
        const id = this.route.snapshot.params.id;
        this.itemService.getItem(id).then(item => {
              this.item = item;
              console.log(this.item);
        });
    }
}
  

HTML

 <FlexboxLayout class="m-15">
    <Label class="h2" [text]="item.Street"></Label>
    <Label class="h2" [text]="item.City"></Label>
    <Label class="h2" [text]="item.Zip"></Label>
</FlexboxLayout>
  

https://imgur.com/a/JQeyz9t

Теперь я точно знаю, что этот код правильно выводит и просматривает данные, но я все еще получаю эту ошибку, которая приведет к сбою при неэмулируемом iPhone запуске приложения. Так что, если у кого-нибудь есть совет о том, как правильно отобразить эти данные, это было бы очень, очень ценно.

Ответ №1:

Дикий поворот событий. Потребовалось слишком много времени, но я нашел решение. Вы можете добавить ? после имени переменной объекта, такого как

 <Label class="h2" [text]="item?.Street"></Label>
  

The ?. (Оператор Elvis) означает, что поле шаблона является необязательным, и если оно не определено, остальную часть выражения следует игнорировать.

Ссылка.https://forum.ionicframework.com/t/problems-with-json-processing-undefined-is-not-an-object/49428