У меня есть код React, который должен извлечь некоторые данные из API, поместить их в хранилище с избыточностью и затем отобразить список с этими данными. Это то, что я делаю
constructor(props) {
super(props);
this.state = {
isLoading: false,
};
}
componentDidMount() {
this.setState({ isLoading: true });
this.loadData();
}
loadData = async () => {
try {
API.getList()
.then(data => {
this.updateState(data);
})
.then(data => this.setState({ isLoading: false }))
.catch(function(error) {
console.log(error.message);
});
} catch (e) {}
};
updateState = async (data) => {
if (data != null) {
await this.props.mainActions.receiveData(data);
}
};
render() {
const { isLoading } = this.state;
if (isLoading) {
return <p>Loading ...</p>;
}
let items = [];
if (this.props.items.data !== undefined) {
items = this.props.items.data.stadiums;
}
return <MyList items={items} />;
}
}
Проблема в том, что при первом отображении, когда я пытаюсь получить «this.props.items», оно еще не определено.
Так что мне нужно поставить этот уродливый IF, чтобы не сломать мой код.
Что будет более элегантным решением этой проблемы?