Я хочу отобразить мой компонент после выполнения моего запроса ajax.Reactjs async рендеринг компонентов
Ниже вы можете видеть, что мой код
var CategoriesSetup = React.createClass({
render: function(){
var rows = [];
$.get('http://foobar.io/api/v1/listings/categories/').done(function (data) {
$.each(data, function(index, element){
rows.push(<OptionRow obj={element} />);
});
return (<Input type='select'>{rows}</Input>)
})
}
});
Но я получаю ошибку ниже, потому что я возвращаю визуализации внутри делается методом моего AJAX запроса.
Uncaught Error: Invariant Violation: CategoriesSetup.render(): A valid ReactComponent must be returned. You may have returned undefined, an array or some other invalid object.
Есть ли способ ждать мой Аякса запрос закончить перед запуском рендеринга?
Кроме того, небольшая nitpick, но имеющая извлечение данных в процедуре render(), на самом деле не отличная идея. Держите render() для рендеринга и абстрагирования остальных. Кроме того, вы можете получать данные только один раз, а не каждый раз, когда компонент отображается. –