componentDidMount
- правильное место для получения данных, и вы делаете это правильно. componentDidUpdate
Хук используется, если вам нужно получить реквизит или состояние и обновить соответственно. Это необходимо, если ваш дочерний компонент будет обновлять их из родительского компонента, получая данные. Но после изучения вашего кода я не заметил, что вам требуется родительский компонент. Итак, вам не нужен componentDidUpdate
крючок. Вам просто нужно сделать следующее:
Поддерживать состояние как:
this.state = {
users: [],
loading: true,
loadingText: 'Loading data...'
};
Затем, после загрузки загрузки набора данных в значение false:
loadData() {
axios.get(REST_API).then((response) => {
//console.log(response.data);
this.setState({
users: response.data,
loading: false
})
});
}
Теперь, когда вы их визуализируете:
const UserList = props => (
<div className="user-list">
<h1>React ES6 Ajax, Container and Presentation - example</h1>
<ul>
{!props.loading && props.users && props.users.map(UserItem)}
</ul>
</div>
);
Примечание: Вы также должны пройти состояние загрузки.