Я пытаюсь проверить рендеринг компонента списка из объекта JSON, вызванного с помощью fetch, однако я подозреваю, что рендер вызывается до возвращения JSON, когда я получаю неопределенная ошибка. Обратите внимание, что отладочное предупреждение() получает значение, но рендер уже имеет ошибку при неопределенном значении. Как я могу справиться с этим? Есть ли способ вызвать функцию рендеринга после того, как данные были извлечены? ИЛИ мог ли я получить данные для рендеринга с помощью?? а затем обновляется, когда данные поступают? Обратите внимание, что мой if (! Object) doesn; t работает, когда вызывается как встроенная обертка - почему бы и нет - или более бесцеремонно, как бы я это сделал? Извините за вопросы начинающих - я подозреваю, что я хотел использовать инфраструктуру данных, чтобы отображать данные для реагирования на показ, но я хотел начать обучение с меньшими рамками и получить основы. Большое спасибо! - код:beginner at react.js - компонент рендеринга из состояния, которое обновляется позже
import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
class ItemLister extends React.Component {
constructor(props) {
super(props);
this.state = { items: [] };
}
componentDidMount() {
let url = "http://localhost:8888";
let iterator = fetch(url, {method: 'GET'});
iterator
.then(response => {
//console.log('sss', response)
return response.json();
})
.then(post => {
//console.log(post)
this.state.items = post;
alert(this.state.items.users[3].firstname);
});
}
output(object){
if (!object){
return '?';
}else{
return object;
}
}
render() {
return(
<div>
<div>Items:</div>
<div>{this.output(this.state.items.users[3].firstname)}</div>
</div>
);
}
}
export default ItemLister;
Да, это базовая вещь с реакцией или другими такими каркасами. Вы создаете местозаполнитель/загрузку/независимо от того, когда нет данных, и когда состояние изменяет компонент, будет отображаться снова, и вы передадите фактические данные. Причина, по которой он не работает, заключается в том, что вы пытаетесь получить доступ к 'this.state.items.users ...', и он не существует, поэтому он даже не попадает в функцию. –