react-router动态路由而不是模式匹配

时间:2015-08-08 02:32:15

标签: reactjs react-router

我的客户有特定的搜索引擎优化/网址要求,我正在试图弄清楚如何使用react-router。

如何将一组匹配相同模式的URL声明为使用不同的处理程序?

e.g。 / A是HandlerA但是/ B是HandlerB而/ B / C也是HandlerA,其中有许多必须满足的排列(在运行时是动态的)。

1 个答案:

答案 0 :(得分: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>都是使用网址完成的,例如: <Link to={url}>...