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} />