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>