Согласно Facebook, лучший способ загрузить исходные данные для компонента React - сделать запрос AJAX в функции componentDidMount:
https://facebook.github.io/react/tips/initial-ajax.html
что-то вроде:
componentDidMount: function () {
var self = this;
Store.fetch()
.done(function () {
if (self.isMounted()) {
self.setState(getLatestState());
}
})
.fail(function (err) {
throw err;
}).always(function(){
Store.addChangeListener('rc-listen',self._onChange);
});
},
Каков наилучший способ обработки ошибок в этом случае? Поскольку AJAX является асинхронным, не должен ли компонентDidMount принимать обратный вызов в качестве аргумента?
Во-первых, когда вы используете componentDidMount, компонент был вставлен в DOM и готов к использованию (добавление событий для элементов, доступ к элементам dom,...). Итак, компонент на этом этапе всегда монтируется.
Во-вторых, если запрос ajax является успешным, вы изменяете состояние, чтобы показывать обновленные данные. Но если запрос ajax терпит неудачу, вы можете изменить состояние для отображения и сообщение об ошибке пользователю (например, и, если хотите, отправить сообщение об ошибке на ваш сервер для сохранения истории ошибок).