Ich habe eine Reihe von AJAX-Anforderungen, die aufgerufen werden müssen, bevor die Seite gerendert werden kann. Ich benutze react-router 2.4.1. In einem meinen früheren Projekten, die eine ältere Version von reagieren-Router verwendet, Dies ist, wie ich verwenden, um mit diesem Problem fertig zu werden, dannWie pausiert man die Verzögerung einer Komponente vor dem Zustandsübergang?
Router.run(RouteConfig, function(Handler, state){
var promises = state.routes.filter(function(route) {
//Every component that needs initial data for rendering will
//define a function fetchData in its statics which will return
//a promise that will be resolved once all required AJAX calls
//are made.
return route.handler.fetchData;
}).map(function(route) {
return route.handler.fetchData(state.params, state.query);
});
if(promises.length > 0) {
Promise.all(promises).then(function(response) {
data = response;
//Rendering will happen only after every call is resolved
render(Handler, data);
}).catch(function(response, err) {
data = response;
data.isError = true;
data.splice(err.index, 1, err.reason);
render(Handler, data);
});
} else {
render(Handler, data);
}
});
function render(Handler, data) {
React.render(<Handler data={data}/>, document.body);
}
In der neuen Version gibt es keine Router.run ich sehe. Wie kann ich dasselbe in 2.4.1 erreichen?
Vielen Dank @andre .. –