Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 从react路由器v4中具有路径参数的路由重定向_Reactjs_React Router Redux_React Router V4 - Fatal编程技术网

Reactjs 从react路由器v4中具有路径参数的路由重定向

Reactjs 从react路由器v4中具有路径参数的路由重定向,reactjs,react-router-redux,react-router-v4,Reactjs,React Router Redux,React Router V4,我正在尝试从一个ID为的url重定向到一个ID相同的新url:/folders/:ID到/folders/:ID/summary 我的问题是我的容器FolderSummaryContainer似乎从未被调用:-/ 这是我的react路由器配置(v4),我做得对吗 {/* STUF */} <Route path="/v3"> <LayoutV3> <Switch> <Route exact path="/v3/folders" c

我正在尝试从一个ID为的url重定向到一个ID相同的新url:
/folders/:ID
/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 */}
{/*STUF*/}
{/*STUF*/}
{/*STUF*/}

不要指定路由的子级,您可以像这样做

<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>
         )
    }
}
类FolderShowContainer扩展了React.Component{
render(){
返回(
{/* */}
{/*STUF*/}
)
}
}

我试试看,谢谢。仅供参考,我们正在从
react路由器
v3迁移到v4,我们喜欢旧的方式,因为所有路由都在同一个文件中。。。如果可能的话,我们希望保持这样。即使我也这样认为,但在当前版本中,情况发生了变化:)在这个主要版本中,情况发生了很大变化。。。有些很酷,有些有点棘手:-Pha你知道我重定向时如何获取
:id
?重定向现在运行良好,但它重定向到
/folders/:id/summary
,而不是
/folders/42/summary
。我应该使用withRoutes
decorator+
match
prop吗?看到这个,是的,使用withRouter