我正在使用BrowserRouter
进行路由以响应 i18n 我需要将基本名称设置为/fa/
表示波斯语,/
表示英语,所以我动态地更改基本名称问题是当基本名称更改路由器路径更改为第一个路由时我输入了。
例如:
我用这个网址输入应用程序:app.com/companies/
然后转到app.com/investors/
之后我改变语言,基本名称将更改为/fa/
然后我将返回app.com/fa/companies/
而不是app.com/fa/investors
这是我设置 basename 的方式:
import { BrowserRouter as Router, Route, RouteProps, Switch } from 'react-router-dom'
<Router basename={this.props.language.isEnglish ? '/' : '/fa/'}>
// Routes...
<Router />
那我怎么能防止重定向到第一条路线。 ?
这是一个问题还是应该是这样的?
i18n 在反应路由器中是否有更好的方法(我们不使用 react-intl)?
1 回答
你可以分享你的整个 rooter 吗:)
你在用开关吗?
从 react-training
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 现在是万维网的标准