xhr react con component javascript ajax reactjs

javascript - con - ¿Cuándo deben los componentes ReactJS hacer llamadas AJAX para actualizar el estado de los accesorios?



react post request (1)

También soy nuevo en reaccionar, por lo que la arquitectura de Flux me intimida un poco. Lo estoy haciendo exactamente como dijiste, usando componentWillMount para cargar datos iniciales a través de AJAX, y luego componentWillReceiveProps con nextProps para cargar datos nuevos nuevamente cuando / cuando cambian las nextProps :

var Table = React.createClass({ getInitialState: function() { return { data: [] }; }, componentWillMount: function(){ this.dataSource(); }, componentWillReceiveProps: function(nextProps){ this.dataSource(nextProps); }, dataSource: function(props){ props = props || this.props; return $.ajax({ type: "get", dataType: ''json'', url: ''/products?page='' + props.page + "&pageSize=" + props.pageSize }).done(function(result){ this.setState({ data: result }); }.bind(this)); }, render: function() { return ( <table className="table table-striped table-bordered"> <Head /> <Body data={this.state.data}/> </table> ); } });

Tengo un componente React que muestra información sobre una entidad. El id de la entidad se pasa a través de una propiedad. El componente inicia una llamada AJAX en "componentDidMount" para obtener la entidad y actualiza el estado cuando la llamada finaliza / falla.

Esto funciona bien, excepto que el componente no recupera datos nuevos cuando cambia la identificación de la entidad (a través de props).

He intentado iniciar una llamada en "componentWillReceiveProps" pero en esa etapa el componente que todavía tiene es el conjunto de propiedades antiguas. Tendría que pasar nextProps al método de llamada AJAX y eso no parece correcto.

¿Cuál es la forma mejor / más limpia de hacer que un componente actualice su estado de forma asíncrona en respuesta a un cambio de propiedad?