2016-08-30 4 views
1

私はReact、Redux、および[email protected]を使用しています。私は、特定のクエリのパラメータが渡されたときにトップレベルコンポーネントをマウントする方法を理解しようとしています。これは可能ですか?react-routerはクエリパラメータに基づいてコンポーネントをマウントできますか?

だから私の既存のルートは次のようになります。今

export default (
    <Route name="root" path="/" component={RootComponent}> 
    <Route name="routeOne" path="a/route/:slug(/)" component={RouteOneComponent} /> 
    <Route name="routeTwo" path="a/route/:slug/:index" component={RouteTwoComponent} /> 
    </Route> 
); 

、私の代わりにa/route/slug/1に装着された、それだけでa/route/slug?i=1でマウントされるようにrouteTwoをリファクタリングする必要があります。

これは可能ですか?私はドキュメントでこれについて何かを見つけることができないようです。実際のルートだけがコンポーネントを持つことができ、クエリは小道具として渡されるようです...しかし、残念なことに、これは私のユースケースではうまくいかないでしょう。 :(任意のアイデア?

答えて

0

私は通常、1小道具に基づいてrenderメソッドでは、このような分割を扱うだろうと思うが、はい、あなたがこの

<Route path="a/route/:slug" 
    getComponent={(nextState, cb) => { 
     if (nextState.location.query[i] === '1') { 
      cb(null, RouteTwoComponent); 
     } else { 
      cb(null, RouteOneComponent); 
     } 
    }} /> 

ためgetComponentを使用することができます。

+0

ありがとう!これは実際に素晴らしい作品しかし、私が必要としているのは、あなたが言及した「通常の」方法についてもっと知りたいのです(おそらくベストプラクティスに従うことに興味があります)。 – Prefix

関連する問題