React-router-dom - 路由上的重定向不会激活新路由



在我的应用程序组件中,我有:

<Switch>                                         
<Route exact path="/" render={() => <Redirect to="/en"/> }
/>
<Route path="/:lang(en|sv|fr)" component={Master} />
<Route component={PageNotFound} />
</Switch>

如果我转到mysite.com/en,则路径成功匹配激活主组件的路由。

但是如果我转到主域("/"(,url 会重定向到mysite.com/en,但组件 Master 未激活,因此不会呈现任何内容。为什么?

编辑:

这对我有用。你可以试试这个。

<Switch>                                         
<Route
path="/:lang"
render={(props) => {
if (['en', 'sv', 'fr'].includes(props.match.params.lang)) {
return <Master {...props}/>;
}
return <PageNotFound/>;
}}
/>
<Redirect exact={true} from="/" to="/en" />
<Route path="*" component={PageNotFound} />
</Switch>

最新更新