Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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 使用条件渲染进行反应路由_Reactjs_React Router - Fatal编程技术网

Reactjs 使用条件渲染进行反应路由

Reactjs 使用条件渲染进行反应路由,reactjs,react-router,Reactjs,React Router,我试图根据有条件呈现的组件设置url(几乎完全遵循)。我跳过了一些细节,但基本上代码如下所示: class ParentComponent extends React.Component { render() { const isTrue = this.state.isTrue; let component= null; if (isTrue) { component = <Component1/>; } else { co

我试图根据有条件呈现的组件设置url(几乎完全遵循)。我跳过了一些细节,但基本上代码如下所示:

class ParentComponent extends React.Component {

  render() {
   const isTrue = this.state.isTrue;

   let component= null;
   if (isTrue) {
       component = <Component1/>;
   } else {
       component= <Component2/>;
   }

   return (
     <div>
       {component}
       <Component3/>
          ...
       <ComponentN/>
     </div>
    );
  }
}

谢谢

请尝试以下代码。它应该像你所期望的那样工作。我在代码中使用了链接导航。您可以使用
状态
进行。如果需要帮助,请告诉我

更新:为更清晰的解决方案创建了小提琴-

class ComponentOne扩展了React.Component{
render(){
返回(
组成部分1
this.props.history.goBack()}>返回
)
}
}
ComponentOne=带有路由器(ComponentOne)的ReactRouterDOM;
类ComponentTwo扩展了React.Component{
render(){
返回(
构成部分2
this.props.history.goBack()}>返回
)
}
}
ComponentTwo=带路由器的反应路由器(ComponentTwo);
类Home扩展了React.Component{
Handlenav组件(ev,索引){
ev.preventDefault();
const{history}=this.props;
push(`/component${index}`);
}
render(){
返回(
) } } Home=带路由器(Home)的ReactRouterDOM; 常量炸药=(道具=>{ const{Route}=ReactRouterDOM; 返回( ); }); 常数分量=[ {路径:“/component1”,名称:ComponentOne}, {路径:“/component2”,名称:ComponentTwo} ]; 类应用程序扩展了React.Component{ render(){ const{BrowserRouter,HashRouter,Switch,Route}=ReactRouterDOM; 返回( {components.map(c=>)} ) } } render(,document.getElementById(“根”))


您使用的是哪个版本的react路由器?@MayankShukla请更新我的问题。感谢亚伯拉罕。谢谢你的评论。但是,我认为您的解决方案可能没有帮助(如果我错了,请纠正我)。我用一些附加的评论更新了我的问题。我创建了另一个,并在那里添加了一些更改。您可以试试看,让我知道这是否有帮助吗?您可以像这样配置路由
,以便为每个子组件动态创建路由。
npm -v react-router
5.2.0