【问题标题】:react-router dynamic routing instead of pattern matchingreact-router 动态路由而不是模式匹配
【发布时间】:2015-08-08 02:32:15
【问题描述】:

我的客户有特定的 SEO/URL 要求,我正在尝试弄清楚如何使用 react-router 进行这项工作。

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

例如/A 是 HandlerA 但 /B 是 HandlerB 并且 /B/C 也是 HandlerA ,其中必须满足许多排列(在运行时动态)。

【问题讨论】:

    标签: reactjs react-router


    【解决方案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>
    );
    

    然后所有&lt;Links&gt; 都只是用 URL 完成的,例如&lt;Link to={url}&gt;...

    【讨论】:

    • 请注意r =&gt; 语法只是function(r) 的ECMAScript 6
    猜你喜欢
    • 1970-01-01
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多