我正在为React js中的每个子组件分配直接路由。以下是我的render
app.js
功能代码
render() {
return (
<div>
<switch>
<Route path='/dashboard*' render={this.renderDash} />
<Route path='/manage*' render={this.renderManage} />
</switch>
</div>
);
}
在这里,this.render
方法仅返回特定组件。 manage
标签中包含更多组件。以下是<manage>
组件的代码。
class Manage extends React.Component {
setDisplay = (e) => {
let display = e.target.id;
let viewToRender;
if(display === 'manage1') {
viewToRender = this.renderManage1;
} else {
viewToRender = this.renderManage2;
}
this.setState ({
viewToRender: viewToRender,
});
}
render() {
return (
<div>
<li onClick={this.setDisplay} id='manage1'>Manage 1</li>
<li onClick={this.setDisplay} id='manage2'>Manage 2</li>
<div>
{this.state.viewToRender}
</div>
</div>
);
}
}
此处,this.render
与app.js
中的工作相同。到目前为止,我只能使用dashboard
作为manage
或direct route
来访问https://project/dashboard
和https://project/manage
页面,并且需要click
子页面链接到达这些页面。
我正在寻找一些逻辑,这些逻辑允许我使用manage1
或manage2
之类的URLs
直接访问https://project/manage/manage1
和https://project/manage/manage2
。
注意:这只是一个演示。在实际情况下,“管理”选项卡几乎包含10个子组件,而所有子组件又具有2-3个子组件。因此,我无法在if-else
switch
或app.js