Ответ 1
ComponentDidMount
Метод жизненного цикла
В соответствии с документами ComponentDidMount
- это компонентный крючок, который вы должны использовать для выполнения вашего запроса ajax:
http://facebook.github.io/react/docs/component-specs.html#mounting-componentdidmount
ComponentDidMount
Вызывается сразу после выполнения рендеринга... Если вы хотите интегрироваться с другими фреймворками JavaScript, установите таймеры с помощью setTimeout или setInterval или отправьте запросы AJAX, выполните эти операции в этом методе.
Пример
Используя ваш пример, код может выглядеть так:
var InfoPage = React.createClass({
getInitialState: function () {
return { info: {} };
},
componentDidMount: function () {
$.ajax({
url: '/info.json',
dataType: 'json',
success: function(data) {
this.setState({info: data});
}.bind(this)
});
},
render: function() {
return (
<div>info: {this.state.info}</div>
);
}
});
getInitialState
Выше мы используем метод getInitialState
для возврата пустого объекта info
. Это позволяет отображать наш компонент, пока мы ждем возврата сервера с данными.
После выполнения ComponentDidMount
он будет использовать this.setState
для замены пустых info
и данных сервера и ref render
компонента.
Дальнейшее чтение
Этот подход можно использовать в разделе Состояние обновления Реагировать.