#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>
Теперь я точно знаю, что этот код правильно выводит и просматривает данные, но я все еще получаю эту ошибку, которая приведет к сбою при неэмулируемом 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