当前位置: 首页 > 知识库问答 >
问题:

按类型排除React Router中路径参数的值

富涛
2023-03-14

我有点被路线部分卡住了。想象一下,我有两条路线,它们有自己的路径:

<Route path='/person/add' exact component={PersonForm}/>
<Route path='/person/:id' exact component={PersonView}/>

/person/add应该显示一个表单,在那里我可以创建一个新的Person
/人/: id应该显示一个具有给定id的人。

问题

有没有办法让我避免这种情况?例如,通过告诉:id应该是一个数字?

共有2个答案

韦寒
2023-03-14

我遇到的问题是我有好几条路线;

/locations/:locationId
/locations/new

但是当使用react-router中的matchPath函数时,它会返回一个误报,当我在/位置/new上时。我通过传递一个自定义正则表达式到我的标识符来解决这个问题;

: locationId([a-z0-9-]{36})

这将检查我的“locationId”是否是uuid,否则它将不匹配。也可能排除“新建/编辑/添加”之类的词

这些来源帮助了我;

  • https://github.com/pillarjs/path-to-regexp/tree/v1.7.0#custom-匹配参数
贺华容
2023-03-14

找到了一个可能的解决方案:您可以在路由周围使用Switch。那么它将只匹配第一个匹配的。

<Switch>
  <Route path='/person/add' exact component={PersonForm}/>
  <Route path='/person/:id' exact component={PersonView}/>
</Switch>
 类似资料:
  • 问题内容: 我试图在一些使用ant脚本的旧项目上进行“干净的专家”设置。我对蚂蚁知之甚少,所以我的问题似乎很幼稚。 我快完成了,但是由于classpath中的冗余,所以传递ant脚本失败了。如果我了解构建,则这些行应将“提供”范围内的每个库添加到类路径中: 然后这个: 将那些依赖项添加到ant.home目录中的库中。 麻烦的是,我使用的maven pom依赖于我无法修改的父pom,因此,我的类路径

  • 问题内容: 我在Eclipse(最新版本)中收到以下代码的警告。 该警告出现在“ A”中的“ T”处,并显示:“类型参数T隐藏了类型T”。 奇怪的是,以下代码不生成任何错误或警告。 但是现在我不能在告诉它T是什么类型的同时扩展A了。 我完全感到困惑。有人知道为什么会这样吗?谢谢。 问题答案: 您是否在某个地方有一个名为的类或接口,或者您在某个地方将其用作具体的类型名称,而不是用作类型参数(这意味着

  • 上一章介绍了类型类的概念,这种模式使设计出来的程序既拥抱扩展性,又不放弃具体的类型信息。 这一章,我们还将继续探究 Scala 的类型系统,讲讲另一个特性, 这个特性可以将 Scala 与其他主流编程语言区分开:依赖类型,特别是,路径依赖的类型和依赖方法类型。 一个广泛用于反对静态类型的论点是 “the compiler is just in the way”, 最终得到的都是数据,为什么还要建立

  • 问题内容: 我写了以下函数: 我想向函数添加类型注释: 但是,我想明确定义返回的字典内的值 不能 为None。 有没有办法说“类型,除”或“除”以外的所有可能值? 问题答案: 假设您愿意在调用函数时修复键和值的类型,则可以使用泛型来使其明确。这还可能会允许的情况下是,但它使意图很清楚。请注意,由于存在差异问题,因此必须使用。但是,无论如何这是优选的。 使用此定义,可以正确地将可选类型转换为非可选类

  • 我有一个错误“类路径包含多个SLF4J绑定。”启动我的Web应用服务器时。我在这里找到的解决办法似乎不起作用。我已经从域中排除了工件,但仍然得到错误。我不明白为什么我有错误即使排除在外。我使用Glassfish 4.1.1作为服务器。 我排除了在错误代码中提供的链接中看到的工件: MVN:树: 这里是我的整个pom.xml:

  • 我想从类型中排除一个单独的属性。我该怎么做呢? 比如我有 我想排除属性 以获得