2016-11-14 4 views
0

this react-router tutorialを調べた後、私がここで学んだことを自分のプロジェクトに統合しようとしました。私のライフサイクルルータについてReact-Routerが混乱しています

私のシナリオでは、ユーザーが/に入ったとき、私はAPIをフェッチし、この[{'category':'electronics', 'items':[{..}],..},..]

私のように見えるAPIから来て最初のカテゴリーにリダイレクトすることを除いて、チュートリアルから番号2に似ていますルータがこの

import RoutaZ from 'Routes.js'; 
... 

<Router history={hashHistory}> 
<Route path="/" component={App}> 
    <IndexRedirect to={RoutaZ.state.data[0].name} /> 
    <Route path=":category" components={Container, SideNavigation} /> 
</Route> 

のように見える私のRoutes.jsこの

のように見えます

ルータでは、RoutaZ.state.data[0].nameは初期状態がnullなので未定義を返します。初期状態を[{'category': 'hello'、...}]に設定すると、helloを返し、期待通りにhelloページにリダイレクトします。 dbを取得した後にリダイレクトするにはどうすればよいですか?

1)onEnterをリアクションルータから現在の設定で使用するにはどうすればよいですか?

2)ルーターの親コンポーネントをどのように設定してすべてのフェッチを処理し、子としてルーターに渡すことができますか?


EDIT:これは終わったが、私はこれだけのリダイレクト問題を持っているされて私のアプリケーションのほんの少しの部分です。私はredux-sagaを使うことができると知っていますが、私のすべてのアプリケーションはすでに完了しており、余裕がない完全にやり直す必要があります。

1-私はonEnterを使ってみましたが、どこに置くべきか分かりません。

2 - 私のアプリケーションのどこかに、親コンポーネントからデータが取り出され、子プロセスに与えられ、子プロセスはそのAPIからデータを受け取りました。

答えて

0

解決しました。コンポーネントを取り付けたときに結果をプッシュする必要がありました

componentDidMount() { 
var self = this; 
fetchData().then(function(results){ 
    router.push(results.data[0].category); 
}) 
}, 
関連する問題