Reactjs React中具有不同组件的相同路由路径

Reactjs React中具有不同组件的相同路由路径,reactjs,routes,Reactjs,Routes,我需要一个视图组件和一个编辑组件。根据条件,按钮需要转到“查看页面”或“编辑页面” 我设置了一条如下所示的路线。 问题是路径是相同的 <Route exact path='/users/:user_id' component={Users.Edit} /> <Route exact path='/users/:user_id' component={Users.View} /> 在页面中,我有如下链接 (type = "A") ? <Link to="user

我需要一个视图组件和一个编辑组件。根据条件,按钮需要转到“查看页面”或“编辑页面”

我设置了一条如下所示的路线。 问题是路径是相同的

<Route exact path='/users/:user_id' component={Users.Edit} />
<Route exact path='/users/:user_id' component={Users.View} />

在页面中,我有如下链接

(type = "A") ? <Link to="users/1">view</Link> : <Link to="users/1">edit</Link>
(type=“A”)?视图:编辑
现在,路由器有相同的路径,所以按钮转到编辑组件

有什么好方法可以调用编辑组件或视图组件吗? 还是我需要像下面这样

<Route exact path='/users/:user_id' component={Users.Edit} />
<Route exact path='/users/:user_id/view' component={Users.View} />

您应该像您建议的那样使用/view后缀,但我建议将
/users/:user\u id
users.view
组件组合,将
/users/:user\u id/edit
users.edit
组件组合

无法根据条件处理1确切url的原因是,当您从电子邮件中打开该url时,无法确定要呈现哪个组件

有一种方法,但比只添加两条路线更难

您可能希望将查看/编辑决策更改为1个路由上的查询参数,但随后必须围绕
用户创建一个新的包装器组件。编辑
用户。查看
以基于查询参数处理决策。所以你的路线应该是

<Route exact path='/users/:user_id' component={Users.EditOrViewDecision} />

但通过这种方式,您仍然必须在
EditOrViewDecision
中根据
?view=edit
查询要显示的组件来管理决策

我认为这是一个正确的决定

<Route exact path='/users/:user_id' component={Users.Edit} />
<Route exact path='/users/:user_id/view' component={Users.View} />

但CRUD通常以这种方式定义路由

<Route exact path='/users/' component={Users.List} />
<Route exact path='/users/create' component={Users.Create} />
<Route exact path='/users/:user_id' component={Users.View} />
<Route exact path='/users/edit/:user_id' component={Users.Edit} />


如果您实际上不需要路由,为什么要设置
路由
s?URL不变,为什么要使用路由?您可以使用一个状态变量,该变量指向
视图
编辑
,并基于此渲染组件。您可以在一天结束时切换视图,即有条件地渲染,而不是使用RoutesSo,哪种方式更好?
<Route exact path='/users/' component={Users.List} />
<Route exact path='/users/create' component={Users.Create} />
<Route exact path='/users/:user_id' component={Users.View} />
<Route exact path='/users/edit/:user_id' component={Users.Edit} />