我正在创建多语言应用程序。我正在使用:React Intl;反应路由器(最新 v4);还原。
我的应用程序中的路径将取决于语言环境:
/ <-- default expecting this to be uk
/en
/ru
/news <-- uk
/en/news
/ru/news
如果用户拥有locale = en-US
并进入localhost:8080
应用程序会将他重定向到 localhost:8080/en
如果用户拥有locale = uk
并进入localhost:8080
应用程序,则会向他显示与地址相对应的组件,localhost:8080/
而无需更改位置路径名。
路由器.jsx
const Routes = ({ lang }) => (
<BrowserRouter basename={lang}>
<Route render={props => <Header {...props} />} />
<Switch>
<Route exact path={`/:${lang}`} component={Landing} />
<Route exact path={`/:${lang}/news`} component={News} />
<Route component={FourOhFour} />
</Switch>
</BrowserRouter>
);
const mapStateToProps = state => ({ lang: getLang(state.locale) });
export default connect(mapStateToProps)(Routes);
目前它没有按预期工作。
如果我no match
输入localhost:8080/
or ,我会进入路线配置localhost:8080/en
。