reactjs - 如何在不使用'exact'参数的情况下在反应路由器dom中构建路由?
问题描述
我正在尝试使用反应路由器设置模式路由。要使其在显示模态的路径后面工作,不能有“确切”参数。
有没有办法维护下面显示的当前路由功能,但不在主路由上使用“精确”?(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 页面上,而它应该位于单独的页面/路由上。
这可能吗?干杯,马特
解决方案
React 路由器返回第一个与 url 匹配的组件,即使它部分匹配所以 '/login' 和 '/' 都将部分和完全匹配第一个 url 并返回 Home 组件,这是不正确的。我认为更改路线的顺序将适用于您的情况
<Switch>
<MainLayout>
<Route path='/login' component={Login}/>
<Route path='/buy/:id' component={View}/>
<PrivateRoute path='/dashboard' component={Dashboard}/>
<Route path='/' component={Home}/>
</MainLayout>
</Switch>
推荐阅读
- swift - Struct 是可编码的,这意味着它的所有属性都是可编码的?
- python - Python 2 vs 3 原始字节输出
- c++ - 重新初始化分配有 new 的 pod 类
- python - 在python中创建ROC曲线,但是发现混淆矩阵可能无法正确生成
- git - Git 错误地拉上了一个 dev 分支并得到“这个分支提前 2 次提交,在 master 后面 13 次提交。”
- python - 使用正则表达式选择字符序列中的模式
- javascript - 在 React 中,为什么我们在箭头函数中调用它?
- c# - 无法弄清楚如何存储来自 API 调用的数据
- powerbi - 带有两个过滤器并忽略负值的 DAX SUM
- javascript - Reactjs - Flipcard - 微调动画和控制