Chcę renderować mój komponent po wykonaniu żądania ajax.Reactjs asynchroniczne renderowanie komponentów
Poniżej można zobaczyć mój kod
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>)
})
}
});
ale pojawia się błąd poniżej ponieważ wracam renderowanie wewnątrz wykonanej metodą mojego ajax żądanie.
Uncaught Error: Invariant Violation: CategoriesSetup.render(): A valid ReactComponent must be returned. You may have returned undefined, an array or some other invalid object.
Czy istnieje sposób, aby czekać na mój ajax żądanie, aby zakończyć przed renderowania startowym?
Również mały dziurkacz, ale pobieranie danych w procedurze render() nie jest świetnym pomysłem. Zachowaj render() do renderowania, a resztę usuń. Co więcej, dane mogą być pobierane tylko raz, a nie za każdym razem, gdy komponent jest renderowany. –