Реагирующая документация заявляет, что запрос ajax должен быть инициирован из componentDidMount
события жизненного цикла (см. react docs).Почему запрос ajax должен выполняться в компонентах Componentid в компонентах React?
Почему это событие?
В большинстве случаев, при загрузке данных с помощью Ajax, я хочу, чтобы отобразить какое-то полоса загрузки, например:
componentDidMount() {
this.setState({isLoading: true});
fetch(...)
.then(...)
.then(() => this.setState({isLoading: false})
}
, но это срабатывает render
метод 3 раза (начальная рендер мгновенным следует настройки isLoading = true
, а затем по isLoading = false
Что плохого об отправке Ajax запрос от componentWillMount
события?
Возможный дубликат [Почему рекомендации React рекомендуют делать AJAX в компонентеDidMount, а не componentWillMount?] (Http://stackoverflow.com/questions/27139366/why-do-the-react-docs-recommend-doing-ajax -in-componentdidmount-not-componentwi) – mattias