【发布时间】:2021-08-06 12:27:39
【问题描述】:
我正在尝试使用反应路由器设置模式路由。要使其在显示模态的基础路径后面工作,不能有“精确”参数。
有没有办法保持如下所示的当前路由功能,但不在主路由上使用“精确”? (Home 组件将创建模态路线)即。是否有另一种方法可以在反应路由器中进行此路由(使用更多交换机等?),我可以从主路由中省略“确切”,并且所有内容仍将正确路由?
<BrowserRouter>
<Switch>
<MainLayout>
<Route exact path='/' component={Home}/>
<Route exact path='/login' component={Login}/>
<Route exact path='/buy/:id' component={View}/>
<PrivateRoute exact path='/dashboard' component={Dashboard}/>
</MainLayout>
</Switch>
</BrowserRouter>
例如,如果我在上面的代码中从 Home Route 中删除 'exact' 参数,Login 组件将出现在 Home 页面上,而它应该位于单独的页面/路由上。
这可能吗? 干杯,马特
【问题讨论】:
-
将 home 路线设为最后,然后您可以从所有路线中删除确切的路线
-
@kenn 感谢您的回复。还是同样的问题,它只是先渲染登录组件,然后渲染它下面的主组件。我没有尝试使用“exact”的组件,除了 Home 之外的所有组件都使用了exact,但仍然是同样的问题
-
每条路由中都会有一个
/,因此您在该路径中定义的任何组件都将始终在没有exact的情况下呈现。将您的Home组件移动到具有唯一前缀的路径,那么您将不需要exact。
标签: reactjs react-router react-router-dom