Reactjs 使用条件渲染进行反应路由
我试图根据有条件呈现的组件设置url(几乎完全遵循)。我跳过了一些细节,但基本上代码如下所示: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
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