【问题标题】:Redirect from a route having path params in react-router v4从 react-router v4 中具有路径参数的路由重定向
【发布时间】:2017-06-12 08:43:07
【问题描述】:

我正在尝试从一个具有 ID 的 URL 重定向到具有相同 ID 的新 URL:/folders/:id TO /folders/:id/summary

我的问题是我的容器 FolderSummaryContainer 似乎永远不会被调用:-/

这是我的 react 路由器配置 (v4),我做得对吗?

{/* STUF */}
<Route path="/v3">
  <LayoutV3>
    <Switch>
      <Route exact path="/v3/folders" component={FolderIndexContainer} />
      <Route path="/v3/folders/:id">
        <FolderShowContainer>
          <Switch>
            <Redirect from="/v3/folders/:id" to="/v3/folders/:id/summary" />
            <Route path="/v3/folders/:id/summary" component={FolderSummaryContainer} />
            {/* STUF */}
          </Switch>
        </FolderShowContainer>
      </Route>
    </Switch>
  </LayoutV3>
</Route>
{/* STUF */}

【问题讨论】:

    标签: reactjs react-router-redux react-router-v4


    【解决方案1】:

    不要为 Route 指定子级,而是可以这样做

    <Route path="/v3">
      <LayoutV3>
        <Switch>
          <Route exact path="/v3/folders" component={FolderIndexContainer} />
          <Route path="/v3/folders/:id" component={FolderShowContainer}/>
        </Switch>
      </LayoutV3>
    </Route>
    

    你可以在你的 FolderShowContainer 返回代码中设置路由配置

    class FolderShowContainer extends React.Component {
         render() {
            return (
                <div>
                 {/* */}
                 <Switch>
                     <Redirect from="/v3/folders/:id" to="/v3/folders/:id/summary" />
                     <Route path="/v3/folders/:id/summary" component={FolderSummaryContainer} />
                     {/* STUF */}
                 </Switch>
                </div>
             )
        }
    }
    

    【讨论】:

    • 我试试看,谢谢。仅供参考,我们正在从 react-router v3 迁移到 v4,我们喜欢旧方式,因为所有路由都在同一个文件中……如果可能的话,我们希望保持这种方式。
    • 即使我也喜欢这样,但在当前版本中,情况发生了变化:)
    • 这个主要版本发生了很多变化......有些很酷,有些有点棘手:-p
    • 您知道如何在我重定向时获得:id 吗?重定向现在效果很好,但它重定向到/folders/:id/summary 而不是/folders/42/summary。我应该使用 withRoutes 装饰器 + match 道具吗?
    • 看到这个stackoverflow.com/questions/44294006/…,是的,使用路由器
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-10
    • 1970-01-01
    • 2018-06-15
    • 1970-01-01
    • 2018-04-05
    相关资源
    最近更新 更多