Javascript 使用React Router v4检查特定url结尾

Javascript 使用React Router v4检查特定url结尾,javascript,url,react-router,react-router-v4,Javascript,Url,React Router,React Router V4,我使用的是React Router v4,我的客户端需要一个特殊功能,在现有页面url的末尾添加“/signup”将导致出现一个注册覆盖,要求提供访问者的联系信息。在覆盖中填写表单后,访问者将被重定向到原始url的内容。如果精明的访问者只需删除“/signup”URL就可以解决这个问题 我的问题是:我如何做到这一点?我是否应该使用路径道具来检查url 我预见到的一个问题是,我无法预测所有潜在的URL和结构。我需要能够采取任何可以嵌套到第n级的任意URL。下面是将出现叠加的情况: <Ro

我使用的是React Router v4,我的客户端需要一个特殊功能,在现有页面url的末尾添加“/signup”将导致出现一个注册覆盖,要求提供访问者的联系信息。在覆盖中填写表单后,访问者将被重定向到原始url的内容。如果精明的访问者只需删除“/signup”URL就可以解决这个问题

我的问题是:我如何做到这一点?我是否应该使用路径道具来检查url

我预见到的一个问题是,我无法预测所有潜在的URL和结构。我需要能够采取任何可以嵌套到第n级的任意URL。下面是将出现叠加的情况:

  <Route path="/home/signup" render={({match}) => (
    <SomeOverlayForm />
  )}> 

  <Route path="/home/xx/signup" render={({match}) => (
    <SomeOverlayForm />
  )}> 

  <Route path="/home/xx/yy/signup" render={({match}) => (
    <SomeOverlayForm />
  )}> 

  <Route path="/other/signup" render={({match}) => (
    <SomeOverlayForm />
  )}> 
(
)}> 
(
)}> 
(
)}> 
(
)}> 
我试图查看在参数中使用regexp是否能解决我的问题,但我认为不是,因为regex似乎只检查有问题的特定参数,并不能解决最初讨论的URL中任意数量的正向斜杠问题(即不同程度嵌套的路径)。见下文:

<Route path="home/:someParam(/\/signup$/"} component={UserProfilePage} />


我很困惑。因此,希望您不仅能就技术解决方案提供指导,而且能就如何思考问题/需求提供指导。我也愿意稍微修改一下实现。例如,我愿意使用“?signup=true”而不是“/signup”。但是,将内容放在URL末尾的要求保持不变

您可以使用
:params*
。它的意思是
零或更多

例如:

<Route path="/home/:pageNo*/signup" component={Overlay} />

你就不能用理智来摆脱这一切吗?我的意思是,您可以使用javascript在任何页面上放置大量的覆盖表单,而无需提供新的URL部分。我可能错了,但我从未见过任何像这样的叠加,就像我说的,我可能错了。谢谢你,@Win-Chiu。这就是我需要的。
// match.params.pageNo contains ""
/home/signup

// match.params.pageNo contains "1"
/home/1/signup

// match.params.pageNo contains "1/2"
/home/1/2/signup

// match.params.pageNo contains "1/2/3"
/home/1/2/3/signup