ページをレンダリングする前に呼び出される一連のAJAXリクエストがあります。私は反応ルータ2.4.1を使用しています。反応-ルータの古いバージョンを使用し、私の以前のプロジェクトの一つでは、これは私がこの問題に対処するために使用方法を新しいバージョンには、その後状態遷移前のコンポーネントの遅延を一時停止する方法は?
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);
}
で、私が見る何Router.runはありません。 2.4.1でどのように達成できますか?
ありがとうたくさんの@andre .. –