Reactjs 如何使用react路由器删除根路由上的尾随路由

Reactjs 如何使用react路由器删除根路由上的尾随路由,reactjs,react-router-v4,Reactjs,React Router V4,我有几条路线: www.example.com/rootRoute/flags www.example.com/rootRoute/test www.example.com/rootRoute/derp 对于路线主页,我希望我的路线是: www.example.com/rootRoute 但是react router在末尾强制a/所以我的根路由是: www.example.com/rootRoute/ 你知道怎么解决这个问题吗 "react-router": "^4.3.1",

我有几条路线:

 www.example.com/rootRoute/flags
 www.example.com/rootRoute/test
 www.example.com/rootRoute/derp
对于路线主页,我希望我的路线是:

 www.example.com/rootRoute
但是react router在末尾强制a/所以我的根路由是:

 www.example.com/rootRoute/
你知道怎么解决这个问题吗

 "react-router": "^4.3.1",
 "react-router-dom": "^4.3.1",
我已经在我的交换机中设置了路径,并将其路由到所需的路径,但a/始终附加在地址栏中

 <Switch>
  <Route path={'/rootRoute/flags'} component={FeatureFlagsPage} />
  <Route path={'/rootRoute/test'} component={DerpComponent} />
  <Route path={'/rootRoute'} component={TestComponent} />

我预计根路径的末尾不会有/。

一些小的更改:

/rootRoute
移动到顶部,并添加到其中。扔掉那些花括号

<Switch>
  <Route exact path='/rootRoute' component={TestComponent} />
  <Route path='/rootRoute/flags' component={FeatureFlagsPage} />
  <Route path='/rootRoute/test' component={DerpComponent} />
</Switch>

我最终使用了history.replaceState(“”,'State Title','Root Path')


在我的索引组件中。

您可以向路由器添加基本名称,如下所示:

<Router basename='/rootRoute'>
  <Switch>
    <Route exact path='/' component={ TestComponent }/>
    <Route path='/flags' component={ FeatureFlagsPage }/>
    <Route path='/test' component={ DerpComponent }/>
  </Switch>
</Router>

我通过添加一个:


//把这条规则放在你的路线之前
//而你的路线就在这里。。。

它是否会删除尾随/?是,通常这是正确的方法@另外,如果它是根路径,为什么不简单地将其作为根路径,如
中所示,其余的可以是
等等……我想你错过了这个问题。我们有example.com/rootRoute/everyotherroute。现在对于主主页组件,我希望路由是www.example.com/rootRoute,但目前它是example.com/rootRoute/无论如何。。。上面的解决方案应该可以解决您遇到的问题。。。这里是指向文档的链接-很棒的文档:你能告诉我你的组件链接在哪里吗?链接不重要,整个应用程序中都有链接组件,重要的是/rootRoute添加了一个example.com/rootRoute/,我想去掉后面的斜杠,我可以通过在window.historyhmm上调用replaceState来实现这一点,你的意思是当你导航时你的应用程序会自动/自动地得到吗?原来的演示似乎没有这个问题。我也没有经历过是的,是的,注意最后的/吗?再去检查一下你的链接。不,我没有。也许你有一些插件可能会影响你。你能在匿名模式下试试吗?
  <Switch>

    // put this rule before your Routes
    <Redirect from="/:url*(/+)" to={window.location.pathname.slice(0, -1)} />

    // and your Routes go here...

  </Switch>