【问题标题】:react router 4 redirect to first route when basename changes当基本名称更改时,将路由器 4 重定向到第一条路由
【发布时间】:2019-01-23 07:00:26
【问题描述】:

我正在使用BrowserRouter 为 i18n 的路由做出反应我被输入了。
例如:
我使用此网址输入应用程序:app.com/companies/ 然后转到app.com/investors/ 之后我更改语言,基本名称将更改为/fa/ 然后我将返回app.com/fa/companies/ 而不是app.com/fa/investors
这就是我设置基本名称的方式:

import { BrowserRouter as Router, Route, RouteProps, Switch } from 'react-router-dom'
<Router basename={this.props.language.isEnglish ? '/' : '/fa/'}>
 // Routes...
<Router />

那么我怎样才能防止重定向到第一条路线。 ?
这是一个问题,还是应该是这样?
反应路由器中的 i18n 有更好的方法吗(我们不使用 react-intl)?

【问题讨论】:

  • 试着把“确切”字如下
  • @VitoMadio 但即使在 api 文档中也没有关于路由器组件的确切 Props 顺便说一句我测试它没有任何改变
  • 好的,请注意,如果你使用 react v4,你应该使用 react-router-dom 而不是 react-router。
  • @VitoMadio 我正在使用 react-router-dom 我添加了一个示例发生了什么问题

标签: reactjs react-router react-router-v4 browser-history


【解决方案1】:

你能分享你的整个rooter吗:)

你在用Switch吗?

从反应训练中提取 Switch will start looking for a matching <Route>. <Route path="/about"/> will match and <Switch> will stop looking for matches and render <About>

所以如果需要/fa,你的rooter会先匹配这个url,然后渲染正确的组件

因此 i18n 或 react-intl 是相同的,但我建议使用 i18n。因为 i18n 现在是万维网的标准

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-02-03
    • 2016-12-09
    • 2017-12-18
    • 1970-01-01
    • 2018-02-14
    • 1970-01-01
    • 2012-01-21
    • 2018-02-10
    相关资源
    最近更新 更多