2015-08-08 33 views
2

我的客戶有特定的SEO/URL要求,我試圖弄清楚如何使這個工作與react-router。react-router動態路由而不是模式匹配

如何將一組匹配相同模式的URL聲明爲使用不同的處理程序?

例如/ A是HandlerA,但是/ B是HandlerB和/ B/C是HandlerA,其中有許多排列(在運行時動態)必須滿足。

回答

1

假設全球RouteTable擁有做出決策所需的所有數據,事實證明這可以提前<Route>對象來完成正在建設中:

var routes = RouteTable.map(r => { 
    if (some logic) { 
     return (<Route handler={A} name={r.url} path={r.url} />); 
    } else { 
     return (<Route handler={B} name={r.url} path={r.url} />); 
    } 
}); 

var routes = (
    <Route path='/'> 
     {routes} 
    </Route> 
); 

,然後將所有<Links>只是用URL來完成,例如<Link to={url}>...

+0

請注意''r =>'語法只是ECMAScript 6 for'function(r)' – cachvico